pandas 比较两个 Dataframe 并只保留某些行

qvk1mo1f  于 2023-04-19  发布在  其他
关注(0)|答案(1)|浏览(136)

我已经在google和stackoverflow上搜索了一段时间来寻找这个基本的问题,我尝试了包括pd.merge在内的多种解决方案,但它都没有达到我想要的效果。
我有两个dataframe:

df1 = pd.DataFrame({'col1': ['A', 'B', 'C'], 'col2': [1, 3, 4]})
df2 = pd.DataFrame({'col1': ['A', 'D', 'E', 'F'], 'col2': [2, 5, 6, 7]})

我想比较两个 Dataframe ,并只保留第二个 Dataframe 的行'D',' E','F',只考虑'col1'的值。
你能告诉我怎么做吗?
先谢谢你了

4nkexdtk

4nkexdtk1#

看起来你想使用isin并使用~反转输出以进行布尔索引:

out = df2[~df2['col1'].isin(df1['col1'])]

请注意,您可以使用merge实现这一点,尽管它有点复杂:

out = (df2.merge(df1['col1'], how='left', indicator=True)
          .loc[lambda d: d.pop('_merge').eq('left_only')]
       )

输出:

col1  col2
1    D     5
2    E     6
3    F     7

相关问题