Python 自动化:在多个数据帧中查找和删除行

Python 自动化:在多个数据帧中查找和删除行,python,pandas,Python,Pandas,我有几个数据帧,AR、AL、BT等,我希望删除某些行。所有数据帧都有PNR列。在所有这些数据帧中,有一些行对应于我希望删除的一些PNR值,我发现它们是这样的: [28]中的 AR['PNR'].值_计数()>1 出[28]: 570604正确 570213正确 5804030210对 570301118错误 5509100177错误 5808100191错误 4108271224错误 5603050120错误 5112271498错误 等 因此,这里我希望删除每个数据帧中PNR为570604、

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

[28]中的

AR['PNR'].值_计数()>1
出[28]:
570604正确
570213正确
5804030210对
570301118错误
5509100177错误
5808100191错误
4108271224错误
5603050120错误
5112271498错误
等
因此,这里我希望删除每个数据帧中PNR为570604、570213或5804030210的所有行

我愚蠢的方法是这样做:

AR = AR[AR.PNR != 570604]
AR = AR[AR.PNR != 570213]
etc
BT = BT[BT.PNR != 5804030210]
有什么更好的方法可以做到这一点的建议吗?谢谢

我会:

AR = AR[~AR.PNR.isin(bad_values)]
你可以通过两种方式得到坏值列表

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

vc = AR.PNR.value_counts()
bad_values = vc[vc > 1].index.tolist()
谢谢,但是当我运行“AR.PNR[AR.PNR.value_counts()>1]时,我得到:IndexingError:Unalignable boolean Series key