相对于第一个数据框,将熊猫中的两个数据框相交?

时间:2020-06-08 17:59:44

标签: python pandas

我想基于两个数据帧中存在的两列(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 |

有没有办法可以做到这一点?

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')