针对另一个数据帧检查一个数据帧并返回错误

时间:2018-10-01 14:29:03

标签: python pandas

我有一个数据帧(df),看起来像:

ID  Location Score
23    London     A
34   Bristol     C
 2   Swansea     D
67    London     A
32      Bath     D

我有一个名为valid的验证数据帧,看起来像:

Main_Location Sub_Location1 Sub_location2
       London       Bristol          Bath

我想返回一个数据帧,该数据帧拾取df数据中没有位置的error中的任何行(让我们将该数据帧称为valid) -frame

所以我的error数据帧看起来像这样:

ID  Location Score
  2  Swansea     D

由于斯旺西不在valid数据框中,因此信息行返回到error数据框中。

尝试使用没有成功:

error = ~df['Location'].isin(valid)

谢谢

2 个答案:

答案 0 :(得分:2)

您可以使用valid.values.flatten()进行检查:

error = df[~df.Location.isin(valid.values.flatten())]

返回:

   ID Location Score
2   2  Swansea     D

答案 1 :(得分:0)

一种方法是使用T进行转置并使用其默认列名'0'

df['Location'].isin(valid.T[0])

输出

0     True
1     True
2    False
3     True
4     True

并将其用作索引器

df[~df['Location'].isin(valid.T[0])]

   ID Location Score
2   2  Swansea     D