首页 > 解决方案 > 迭代数据框列表并删除特定行

问题描述

我有一个数据框列表:

list = [a, b, c, d, e ,f]

这些数据帧中的每一个都有一个名为“PEOPLE”的列,我想遍历这个列表并删除任何数据帧中的任何行,其中“PEOPLE”中的值是另一个列表中的值之一:

people_to_drop = ['PERSON ABC','PERSON DEF']

我一直在尝试以下方法:

for index,item in enumerate(list):
     list[index] = item[~item['PEOPLE'].isin(people_to_drop)].copy()

但是,当我在 for 循环运行后检查数据集时,它们似乎没有删除我想要删除的行。有一个更好的方法吗?提前致谢!

标签: pythonpandasdataframe

解决方案


您可以尝试如下列表理解

df_list = [a, b, c, d, e ,f]
new_df_list = [a_df[~a_df['PEOPLE'].isin(people_to_drop)].copy() for a_df in df_list]

之后,打印出每个数据框new_df_list以检查

print(new_df_list[0])
print(new_df_list[1])

推荐阅读