python - 如何在熊猫中组合 groupby(s)?
问题描述
我有两个数据框,我想使用 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']})
因为实际数据非常大,有数百列,我不想先加入它们......
有什么想法和想法吗?谢谢您的帮助。
解决方案
你可以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
推荐阅读
- pyspark - 如何在 pyspark 中解压 tar.gz 文件?tar.gz 中有 10 个文件。我有兴趣只阅读 10 个文件中的一个
- python - pivot_table 中的错误:Dropna=False:数组太大;`arr.size * arr.dtype.itemsize` 大于最大可能大小
- javascript - HTML CSS JS,无法打开我制作的实时代码编辑器
- javascript - 如何随机替换特定 URL 的 HREF?innerHTML 影响延迟加载
- pandas - 从日期范围中删除几个日期
- django - 芹菜时间表
- android - 如何拦截Android中的所有onClick事件?
- string - 如何从 Rust 中的另一个字符串中删除单个尾随字符串?
- c# - 来自测试的 Autofac RegisterAssemblyTypes
- pdf - Netsuite 发票 Pdf 显示应用金额