python - 计算 Pandas groupby 中各组之间的按价值均值和按价值求和
问题描述
假设我有一个这样的数据框:
cluster A B C
a 1 2 3
a 10 20 30
a 100 200 300
b 4 5 6
b 40 50 60
b 400 500 600
c 7 8 9
c 70 80 90
c 700 800 900
我想首先按集群对数据框进行分组,然后计算 A 列和 B 列的值均值,并计算组中 C 列的值总和。
预期结果:
cluster A B C
d 4 5 18
d 40 50 180
d 400 500 1800
提前致谢。
解决方案
您可以按集群的 cumcount 分组,然后执行聚合函数:
s = df.groupby('cluster').cumcount()
df = df.groupby(s).agg({'A':'mean', 'B':'mean', 'C':'sum'})
df.insert(0,'cluster','d')
df
Out[1]:
cluster A B C
0 d 4 5 18
1 d 40 50 180
2 d 400 500 1800
推荐阅读
- excel - 如何解决 Visual Basic 中的对象定义错误?
- msmq - Windows 功能“Microsoft 消息队列 (MSMQ) 服务器”未显示在 Windows 10 机器中
- configuration - SharePoint Online Web 部件 - 全局属性/配置
- sql - 如何将具有 yyyymm 值的 nvarchar 转换为日期?
- c++ - 如何在 Gradle 中禁用本机项目的开发(调试)二进制文件?
- r - 如何在 R 上从价格时间序列中创建 300 只等权重股票的投资组合并对投资组合进行回测?
- javascript - 这个例子中的 onToggle 属性是如何工作的?
- javascript - 首次访问 Nuxt 2.15.3、Tailwind 和 Pwa 模块时不会加载 Safari 本地字体
- magento - 安装 magento 后,css 和 js 文件出现 404 错误
- linkedin - 你能得到Linkedin API上共享内容的url吗?