【问题标题】:How to combine the groupby(s) in pandas? [duplicate]如何在熊猫中组合 groupby(s)? [复制]
【发布时间】:2019-03-21 06:29:40
【问题描述】:

我有两个数据框,我想使用 Python 连接 groupby 结果...我该怎么做?

df1=pd.DataFrame({'Country':["US","CN","GB","US","DE","AU","CM","CU","CM"],'July Volume': [2541,3766,3071,1881,4653,1890,3203,1820,1411],
              'July Sales':[40264,40400,16135,41301,13757,45066,53709,42798,16184]})

df2=pd.DataFrame({'Country':["BA","CN","BE","US","AR","US","CM","CU","GB"],'Aug Volume':[4928,1665,4438,3241,4700,2304,2138,2692,4054],
              'Aug Sales':[18291,39776,41642,28364,21437,42000,56684,45179,23534]})

Groupby df1

df1.groupby('Country').agg({'July Sales':['count','sum']})

Groupby df2

df2.groupby('Country').agg({'Aug Sales':['count','sum']})

我的预期结果是:

因为实际数据非常大,有上百列,我不想先加入它们...

有什么想法和想法吗?感谢您的帮助。

【问题讨论】:

    标签: python pandas concatenation pandas-groupby


    【解决方案1】:

    你可以像这样使用pandas.concat()

    df1 = df1.groupby('Country').agg({'July Sales':['count','sum']})
    df2 = df2.groupby('Country').agg({'Aug Sales':['count','sum']})
    
    df = pd.concat([df1,df2],axis=1)
    

    df 看起来像:

        July Sales         Aug Sales
             count    sum      count    sum
    AR         NaN    NaN          1  21437
    AU           1  45066        NaN    NaN
    BA         NaN    NaN          1  18291
    BE         NaN    NaN          1  41642
    CM           2  69893          1  56684
    CN           1  40400          1  39776
    CU           1  42798          1  45179
    DE           1  13757        NaN    NaN
    GB           1  16135          1  23534
    US           2  81565          2  70364
    

    【讨论】:

    • 谢谢。答案对我有帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-07
    • 2018-08-28
    • 2020-03-25
    • 1970-01-01
    • 1970-01-01
    • 2016-04-21
    • 2019-04-07
    相关资源
    最近更新 更多