自动执行此操作:在多个数据框中查找和删除行

时间:2014-05-02 15:45:44

标签: python pandas

我有几个DataFrame, AR,AL,BT 等,我希望删除某些行。所有数据框都有 PNR 列。某些行对应于我希望在所有这些数据帧中删除的某些 PNR 值,我发现它们是这样的:

In [28]:

AR['PNR'].value_counts() > 1
Out[28]:
570604         True
570213         True
5804030210     True
5703301118    False
5509100177    False
5808100191    False
4108271224    False
5603050120    False
5112271498    False
etc...

所以我希望删除 PNR 为570604,570213或5804030210的每个数据帧中的所有行。

我的愚蠢方法就是这样做:

AR = AR[AR.PNR != 570604]
AR = AR[AR.PNR != 570213]
etc
BT = BT[BT.PNR != 5804030210]

有什么更好的方法可以做到这一点?谢谢

1 个答案:

答案 0 :(得分:1)

我愿意:

AR = AR[~AR.PNR.isin(bad_values)]

您可以通过几种方式获取错误值列表。

我还没有测试过这个,但我的第一次尝试是这样的:

vc = AR.PNR.value_counts()
bad_values = vc[vc > 1].index.tolist()