我有一个数据帧(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)
谢谢
答案 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