熊猫:计算数据框每列n个值的一组平均值

时间:2019-02-21 12:05:48

标签: python pandas dataframe

我有以下类型的数据框:

     A      B    
0    1      2    
1    4      5    
2    7      8    
3    10    11   
4    13    14   
5    16    17   

我想计算每列的前3个元素的平均值,然后计算接下来的3个元素,依此类推,然后存储在数据框中。

所需的输出-

      A      B    
0     4      5
1     12    14

使用Group By是我想到的方法之一,但在这种情况下我无法弄清楚如何使用Group by。

1 个答案:

答案 0 :(得分:2)

如果默认为RangeIndex,则使用整数除法并传递给groupby

df = df.groupby(df.index // 3).mean()
print (df)
    A   B
0   4   5
1  13  14

详细信息

print (df.index // 3)
Int64Index([0, 0, 0, 1, 1, 1], dtype='int64')

按DataFrame的长度创建数组的一般解决方案-使用所有索引值:

df = df.groupby(np.arange(len(df)) // 3).mean()

详细信息

print (np.arange(len(df)) // 3)
[0 0 0 1 1 1]