【问题标题】:Merging two pandas dataframes on multiple columns在多列上合并两个熊猫数据框
【发布时间】:2019-12-02 00:52:12
【问题描述】:

我有两个数据框:

>>> df1
[Output]: col1   col2   col3   col4
           a     abc     10    str1
           b     abc     20    str2
           c     def     20    str2
           d     abc     30    str2

>>> df2
[Output]: col1   col2   col3   col5   col6
           d     abc     30    str6    47
           b     abc     20    str5    66
           c     def     20    str7    53
           a     abc     10    str5    21

下面是我想要生成的:

>>> df_merged
[Output]: col1   col2   col5
           a     abc    str5
           b     abc    str5 
           c     def    str7
           d     abc    str6

我不想生成超过 4 行,这通常是我尝试合并数据帧时发生的情况。感谢您的提示!

【问题讨论】:

  • 我不太明白你试图合并什么。只是col1? col1 和 2?在您的示例中,这实际上并不重要。
  • 为什么是merge?我只看到带有子集列的已排序 df2

标签: python pandas merge


【解决方案1】:

通过选择正确的列并使用col1 & col2 作为关键列来使用.merge

df1[['col1', 'col2']].merge(df2[['col1', 'col2', 'col5']], on=['col1', 'col2'])

  col1 col2  col5
0    a  abc  str5
1    b  abc  str5
2    c  def  str7
3    d  abc  str6

【讨论】:

    【解决方案2】:
    df_merged = pd.DataFrame()
    df_merged['col1'] = df1['col1'][0:3]
    df_merged['col2'] = df1['col2'][0:3]
    df_merged['col5'] = df2['col5'][0:3]
    

    这对您正在寻找的内容有帮助吗?

    【讨论】:

    • 我的实际数据框要大得多,这就是我想使用`merge()`的原因
    猜你喜欢
    • 2017-06-11
    • 2016-01-01
    • 2017-11-26
    • 2018-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多