【发布时间】:2020-12-12 21:07:20
【问题描述】:
我有这个数据框:
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()
这是它的结果:
但这并没有解决我的问题..
【问题讨论】:
-
您需要将数据框分成奇数和偶数索引。这是 as_index=False 假设要做的吗?我不确定..无论如何,给出
df.groupby('period', as_index=False)['s1'].mean()的结果 -
所以是的,你做了完整数据帧的平均值,而你想要的结果是数据帧中偶数和奇数索引值的平均值。你可以检查你确实做到了,因为 (4.00+4.33)/2=4.166, (3.00+3.33)/2=3.1666 and (2.333+2.333)/2=2.33
-
不一定是偶数和奇数我有一个很大的df,其中有很多值,如p1和p2等。这只是一个用于简化问题的示例df..
-
哦,好的,所以您需要考虑到您不想在同一“天”计算相同“周期”的值
标签: python pandas dataframe pandas-groupby