我有一个数据框,如下所示:
df =
index value1 value2 value3
001 0.3 1.3 4.5
002 1.1 2.5 3.7
003 0.1 0.9 7.8
....
365 3.4 1.2 0.9
索引表示一年中的天数(所以有时索引的最后一个数字是366),我想将其与随机天数分组(例如10天或30天),我认为代码如下,
df_new = df.groupby( "method" ).mean()
在某些问题中,我看到他们使用日期时间类型进行分组,但是在我的数据框中,索引只是数字,有没有更好的方法对其进行分组?提前致谢!
最佳答案
我认为需要下限指数值和聚合平均值:
df_new = df.groupby( df.index // 10).mean()
如果不是默认的唯一数字索引,则另一个通用解决方案:
df_new = df.groupby( np.arange(len(df.index)) // 10).mean()
示例:
c = 'val1 val2 val3'.split()
df = pd.DataFrame(np.random.randint(10, size=(20,3)), columns=c)
print (df)
val1 val2 val3
0 5 9 4
1 5 7 1
2 8 3 5
3 2 4 2
4 2 8 4
5 8 5 6
6 0 9 8
7 2 3 6
8 7 0 0
9 3 3 5
10 6 6 3
11 8 9 6
12 5 1 6
13 1 5 9
14 1 4 5
15 3 2 2
16 4 5 4
17 3 5 1
18 9 4 5
19 9 8 7
df_new = df.groupby( df.index // 10).mean()
print (df_new)
val1 val2 val3
0 4.2 5.1 4.1
1 4.9 4.9 4.8
关于python - Pandas 中按指定组大小对索引进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49277417/