gpt4 book ai didi

python - 如果引用的文件不存在,则有效删除 Pandas DataFrame 中的行

转载 作者:行者123 更新时间:2023-12-01 00:47:38 27 4
gpt4 key购买 nike

我有一个 Pandas DataFrame,df,它有一个 path 列,其中包含用于分析的图像文件的路径。该数据集中的某些图像实际上并不存在,因此我需要有选择地删除具有不存在图像路径的行。

目前,我正在循环整个数据帧并重新分配它,如下所示:

for index, sample in df.iterrows():
if not os.path.isfile(sample['path']):
df = df.drop(index)

但是,由于我的数据集包含数万张图像,因此速度非常慢。

我还考虑过使用像这个更一般的问题 here 这样的方法:

df = df.drop(df[not os.path.isfile(df['path'])].index)

但是,这不起作用,因为 os.path.isfile 与 Pandas DataFrames 不兼容。

我觉得必须有更好的方法来解决这个问题。有什么想法吗?

最佳答案

为了性能,我会投票支持列表理解而不是 apply() ,并将输出用作切片的 bool 索引:

df[[os.path.isfile(i) for i in df['path']]]

关于python - 如果引用的文件不存在,则有效删除 Pandas DataFrame 中的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56824709/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com