我有一个包含40108行的数据帧和一个包含997个文件的图片文件夹(仅使用40108个图片中的一个示例)。图像的文件名对应于df中“imdbId”列中的行,另外还有.jpg后缀。你知道吗
我想删除df中imdbId列中的名称在我的文件夹中没有任何对应文件名的所有行,并保留其余行。这意味着在运行完代码之后应该还有997行。你知道吗
示例:
测向中的位置1是114709。文件夹中不存在名为114709.jpg的图片,这意味着应删除此行。你知道吗
测向中的位置2是113497。文件夹中存在名为113497.jpg的图片。这一行应该保留。 ... 对于所有行,依此类推。你知道吗
我一直在尝试创建一个带布尔值的索引和一个带布尔值的for/if循环os.path.isfile文件,但我无法将df中的imdbId正确地插入到任何条件中。你知道吗
我笔记本中的示例:
exists = os.path.isfile('moviegenre/SampleMoviePosters/**114709.jpg**')
if exists:
# Do nothing, let the row remain.
else:
# Drop row
我们将非常感谢您的帮助。提前谢谢。你知道吗
通常在数据帧is considered an antipattern的行或列上进行“迭代”,并且在循环之前有几种替代方法可供测试。你知道吗
在这种情况下,您可以apply将函数添加到“imdbid”列中,该列根据图像的存在为每个值获取
true
或false
。你知道吗然后,您可以尝试删除那些没有图像的行,但是在pandas中所做的通常是获得一个新的数据帧(or a view of a dataframe),其中只包含您感兴趣的数据。你知道吗
例如:
相关问题 更多 >
编程相关推荐