python - 基于索引和另外 2 列的列的平均值
问题描述
我有这个数据框:
d = {'day': [0,0,0,0,0,0, 1,1,1,1,1,1, 2,2,2,2,2,2], 'period': ['p1','p1','op1','op1','p2','p2','p1','p1','op1','op1','p2','p2','p1','p1','op1','op1','p2','p2'], 's1':[2,2,3,6,4,2,8,2,1,2,1,2,2,9,5,2,2,3]}
df = pd.DataFrame(data=d)
我需要这个结果:
我试过这个:
df.groupby('period', as_index=False)['s1'].mean()
这是它的结果:
但这并没有解决我的问题..
解决方案
你可以试试这个:
df.groupby(['period',df.groupby(['day','period']).cumcount()]).mean()
输出:
day s1
period
op1 0 1.0 3.000000
1 1.0 3.333333
p1 0 1.0 4.000000
1 1.0 4.333333
p2 0 1.0 2.333333
1 1.0 2.333333
推荐阅读
- javascript - 如何使用相应的值显示输入字段的 ID
- javascript - 使用输入滑块放大对象的伪空间的正确方法
- kubernetes - 您可以禁用在图表/目录中扩展的依赖项吗
- r - 如何在 dplyr summarise() 中使用循环
- javascript - 用 JS 发送 Outlook 邮件?
- python - 将字符串列表传递给原始 sql 查询(Python/Django)
- c - 注册打印功能
- jsf - 使用 Spring Security 和 Java Server Faces 成功登录后不显示用户名
- r - 如何从 data.frame 的名称自动重命名列?
- python - 将 IP 列表转换为相应 IP 范围的列表(python)