首页 > 解决方案 > 合并和加入 wo pandas 数据框,不包括右侧数据框列

问题描述

我有两个数据框,如下所示。

***df1 = pd.DataFrame({'a':[1,1,2,2,3,3], 'b':[1,2,1,2,1,2], 'c':[1,2,4,0,0,2]})***

df1

a   b   c

0 1 1 1 1 1 2 2 2 2 1 4 3 2 2 0 4 3 1 0 5 3 2 2

***df2 = pd.DataFrame({'a':[1,1,2,2], 'b':[1,2,1,2], 'c':[1,5,6,2]})***

df2

a   b   c

0 1 1 1 1 1 2 5 2 2 1 6 3 2 2 2

我想应用两个数据框的内部连接并且不想要来自 df2 的列,所以尝试使用下面的代码。

***merged_df = df1.merge(df2, how='inner', left_on=["a", "b"], right_on=["a","b"])***

a   b   c_x c_y

0 1 1 1 1 1 1 2 2 5 2 2 1 4 6 3 2 2 0 2

从上面的代码中,没有手动删除 c_x 和 c_y,有什么方法可以不合并正确的数据帧(df2),我想要 df1 中的所有列,合并后不想要 df2 中的任何列。提前致谢。

标签: python-3.xpandas

解决方案


想法是仅过滤用于合并的列,here a,b。如果希望通过两列合并on参数应省略(然后熊猫通过两列的交集合并DataFrames):

merged_df = df1.merge(df2[["a", "b"]])

像这样工作:

merged_df = df1.merge(df2[["a", "b"]], on=['a','b'])

推荐阅读