设置
我有2个pandas DataFrame,
df1 = pd.DataFrame(data = {'col1' : [1, 2, 3], 'col2' : [10, 11, 12], 'col3' : [4, 5, 6]})
df2 = pd.DataFrame(data = {'col1' : [1, 2, 4], 'col2' : [10, 11, 12]})
使得df1
是
col1 col2 col3
0 1 10 4
1 2 11 5
2 3 12 6
和df2
是
col1 col2
0 1 10
1 2 11
2 4 12
问题
我想选择df2
中所有在col1
中具有值但不在df2中的col1
中的行。
在示例中,这意味着result_df
应该是
col1 col2
2 4 12
但以下尝试,
result_df = df2[~df2.col1.isin(list(df2['col1']))]
结果为空数据框。
我在做什么错了?
答案 0 :(得分:0)
删除列表(isin
与Series
一起使用)并将df2
更改为df1
:
result_df = df2[~df2['col1'].isin(df1['col1'])]
print (result_df)
col1 col2
2 4 12