【问题标题】:merging and joining the wo pandas data frames with out including right side data frame columns合并和加入 wo pandas 数据框,不包括右侧数据框列
【发布时间】:2020-12-17 20:15:21
【问题描述】:

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

***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.x pandas


    【解决方案1】:

    想法是仅过滤列以进行合并,此处为a,b。如果想通过两列合并on参数应该省略(然后pandas通过两列的交集合并DataFrames):

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

    工作方式:

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

    【讨论】:

    • 太棒了,这行得通。 merge_df = df1.merge(df2[["a", "b"]], on=['a','b'])
    猜你喜欢
    • 2019-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-10
    • 1970-01-01
    • 2018-08-04
    • 2019-07-23
    • 1970-01-01
    相关资源
    最近更新 更多