Python 创建一个新列,说明文件是否存在

Python 创建一个新列,说明文件是否存在,python,pandas,Python,Pandas,正在分析数据集中的数据,其中一些图像不可用,因此我想创建一个新行exists,这样我可以循环遍历.jpg图像名称,将其设置为False或True 获取unicode错误 import pandas as pd from pandas import Series train = pd.read_csv('train.csv') In [16]: train['exists'] = Series(str(os.path.isfile('training_images/' + train['id']

正在分析数据集中的数据,其中一些图像不可用,因此我想创建一个新行
exists
,这样我可以循环遍历
.jpg
图像名称,将其设置为False或True

获取unicode错误

import pandas as pd
from pandas import Series
train = pd.read_csv('train.csv')

In [16]: train['exists'] = Series(str(os.path.isfile('training_images/' + train['id'] + '.jpg')))
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-16-4ada5144d198> in <module>()
----> 1 train['exists'] = Series(str(os.path.isfile('training_images/' + train['id'] + '.jpg')))
/usr/lib/python2.7/genericpath.pyc in isfile(path)
     35     """Test whether a path is a regular file"""
     36     try:
---> 37         st = os.stat(path)
     38     except os.error:
     39         return False
TypeError: coercing to Unicode: need string or buffer, Series found
将熊猫作为pd导入
从熊猫进口系列
列车=pd.read\U csv('train.csv'))
在[16]中:train['exists']=Series(str(os.path.isfile('training_images/'+train['id']+'.jpg'))
---------------------------------------------------------------------------
TypeError回溯(最近一次调用上次)
在()
---->1列['exists']=系列(str(os.path.isfile('training_images/'+train['id']+'.jpg'))
/isfile(path)中的usr/lib/python2.7/genericpath.pyc
35“测试路径是否为常规文件”
36尝试:
--->37 st=os.stat(路径)
38除操作系统错误外:
39返回错误
TypeError:强制使用Unicode:需要字符串或缓冲区,找到序列

我建议您使用矢量化解决方案,如下所示:

train['filename'] = 'training_images' + os.sep + train['id'] + '.jpg'
train['exists'] = train['filename'].map(os.path.isfile)

结果将是一个布尔值
pd.Series

您可以使用apply来执行此操作

train['exists'] = train['id'].apply(lambda x: os.path.isfile('training_images/' + x + '.jpg'))

尝试使用
apply
,类似于
train['exists']=train['id'].apply(lambda x:os.path.isfile('training_images/'+x+'.jpg'))
?谢谢,它看起来也可以工作,但我已经实现了第一个建议。@jpp当方法类似于
isfile
,熊猫如何向量化
.map
,所以需要单独检查每个文件吗?