我想基于两个数据帧中存在的两列(A和B),将两个Pandas数据帧(1和2)相交。但是,我想返回一个仅包含有关第一个数据帧中数据的数据的数据帧,而忽略在第二个数据帧中找不到的任何内容。
例如:
Dataframe 1:
A | B | Extra | Columns | In | 1 |
----------------------------------
1 | 2 | Extra | Columns | In | 1 |
1 | 3 | Extra | Columns | In | 1 |
1 | 5 | Extra | Columns | In | 1 |
Dataframe 2:
A | B | Extra | Columns | In | 2 |
----------------------------------
1 | 3 | Extra | Columns | In | 2 |
1 | 4 | Extra | Columns | In | 2 |
1 | 5 | Extra | Columns | In | 2 |
应返回:
A | B | Extra | Columns | In | 1 |
----------------------------------
1 | 3 | Extra | Columns | In | 1 |
1 | 5 | Extra | Columns | In | 1 |
有没有办法可以做到这一点?
答案 0 :(得分:1)
您可以使用df.merge
:
df = df1.merge(df2, on=['A','B'], how='inner').drop('2', axis=1)
how='inner'
是默认。只需将其放在此处即可了解df.merge
的工作原理。
按照@piRSquared的建议,您可以执行以下操作:
df1.merge(df2[['A', 'B']], how='inner')