Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 根据文件夹中是否存在来自df的文件名,在df中删除行_Python_Pandas_Boolean - Fatal编程技术网

Python 根据文件夹中是否存在来自df的文件名,在df中删除行

Python 根据文件夹中是否存在来自df的文件名,在df中删除行,python,pandas,boolean,Python,Pandas,Boolean,我有一个包含40108行的数据帧和一个仅包含图片的文件夹,使用的是包含997个文件的40108张图片的样本。图像的文件名对应于df中“imdbId”列中的行,另外还有.jpg后缀 我想删除df中imdbId列中的名称在我的文件夹中没有任何对应文件名的所有行,并保留其余行。这意味着在运行代码之后应该剩下997行 例如: df中的位置1为114709。文件夹中不存在名为114709.jpg的图片,这意味着应删除此行 df中的位置2为113497。文件夹中存在名为113497.jpg的图片。这场争吵应

我有一个包含40108行的数据帧和一个仅包含图片的文件夹,使用的是包含997个文件的40108张图片的样本。图像的文件名对应于df中“imdbId”列中的行,另外还有.jpg后缀

我想删除df中imdbId列中的名称在我的文件夹中没有任何对应文件名的所有行,并保留其余行。这意味着在运行代码之后应该剩下997行

例如:

df中的位置1为114709。文件夹中不存在名为114709.jpg的图片,这意味着应删除此行

df中的位置2为113497。文件夹中存在名为113497.jpg的图片。这场争吵应该继续下去。 ... 对于所有行,依此类推

我一直在尝试使用boolean创建索引,并使用os.path.isfile创建for/if循环,但我无法将df中的imdbId正确插入任何条件

我的笔记本中的示例:

exists=os.path.isfile'moviegenre/SampleMoviePosters/**114709.jpg** 如果存在: 什么也不做,让争吵继续下去。 其他: 投行
我们将非常感谢您的帮助。提前谢谢

通常在数据帧的行或列上进行迭代,在循环之前有几种替代方法可供测试

在这种情况下,您可以向imdbid列添加一个函数,该函数根据图像的存在为每个值获取true或false

然后,您可以尝试删除那些没有图像的行,但在pandas中所做的通常是获得一个只包含您感兴趣的数据的新数据帧

例如:

mkdir-p电影类型/样片电影海报/ touch moviegenre/SampleMoviePosters/114709.jpg 导入操作系统 作为pd进口熊猫 def图像_existsimdbid: filepath=fmoviegenre/SampleMoviePosters/{imdbid}.jpg 返回os.path.isFilePath 数据=[[114709'动画|冒险|喜剧'],[113497'动作|冒险|家庭]] df=pd.DataFramedata,columns=['imdbid','Genre'] df_with_images=df[df[imdbid]。applyimage_存在]
Python没有数据帧。大概你在用熊猫什么的?请回答您的问题并添加相关标签。