在python中从Dataframe中删除特定行
我想删除python中列表中没有图像名称的所有数据帧行。以下是具有以下数据帧和列表的输出示例:在python中从Dataframe中删除特定行,python,Python,我想删除python中列表中没有图像名称的所有数据帧行。以下是具有以下数据帧和列表的输出示例: Dataframe: ImageName | A 0001.jpg | 1 0002.jpg | 1 0003.jpg | 1 0004.jpg | 1 List: '0003.jpg' '0001.jpg' Output dataframe: ImageName | A 0001.jpg | 1 0
Dataframe:
ImageName | A
0001.jpg | 1
0002.jpg | 1
0003.jpg | 1
0004.jpg | 1
List:
'0003.jpg'
'0001.jpg'
Output dataframe:
ImageName | A
0001.jpg | 1
0003.jpg | 1
这是我写的代码:
df = pd.read_csv("./imagenames.csv")
for index, row in df.iterrows():
a1=df.iloc[index][0]
a2=train_gen_labels
result=pd.Series(a1).isin(a2).any()
if(result==False):
df=df.drop(index)
else : positive=positive+1
但是,此代码返回错误:
单个位置索引器超出范围
您可以完全避免for
循环,并通过以下方法完成工作:
df[df.ImageName.isin(train_gen_labels)]
df.ImageName.isin(序列发电机标签)
创建一个掩码,以仅选择序列发电机标签列表中ImageName值所在的行。而不是for?如果是这样的话,那就不行了。它给出错误KeyError:0