【问题标题】:how to merge two data frames based on particular column in pandas python?如何根据 pandas python 中的特定列合并两个数据框?
【发布时间】:2016-10-08 09:48:22
【问题描述】:

我必须合并两个数据框:

df1

company,standard
tata,A1
cts,A2
dell,A3

df2

company,return
tata,71
dell,78
cts,27
hcl,23

我必须将两个数据帧统一为一个数据帧。我需要这样的输出:

company,standard,return
tata,A1,71
cts,A2,27
dell,A3,78

【问题讨论】:

    标签: python pandas python-2.7 merge


    【解决方案1】:

    使用merge:

    print (pd.merge(df1, df2, on='company'))
    

    示例:

    print (df1)
      company standard
    0    tata       A1
    1     cts       A2
    2    dell       A3
    
    print (df2)
      company  return
    0    tata      71
    1    dell      78
    2     cts      27
    3     hcl      23
    
    print (pd.merge(df1, df2, on='company'))
      company standard  return
    0    tata       A1      71
    1     cts       A2      27
    2    dell       A3      78
    

    【讨论】:

    • 如何对 pandas 中的 %values 求和?
    • 我有一列(返回)...该列包含 10%、10%、20%
    • 我必须将这些值相加并打印 40%
    • 你必须先删除%,然后求和——我认为你可以发布新问题。
    • 感谢您的回答,我使用了 .join 和 .concat;没有工作。这个做到了:D
    【解决方案2】:

    我觉得我们也可以用

    df1.merge(df2,on='Company')
    

    【讨论】:

      【解决方案3】:

      为了成功合并基于公共列的两个数据帧,两个数据帧中公共列的 dtype 必须相同!可以通过以下方式更改列的 dtype:

      df['commonCol'] = df['commonCol'].astype(int)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-01-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-09-03
        相关资源
        最近更新 更多