PYTHON : DataFrame中大数据的缩写

PYTHON : abbreviate big data in DataFrame

我的数据在数据框中的行数过多
例如)输入:

No  col1 col2 col3 col4  

1    0     5    6    8   
2    0     5    7    8  
3    0     7    5    2  
4    0     4    4    5  
.    .     .    .    .  
.    .     .    .    .  
.    .     .    .    .  

输出:

New_No col1 col2 col3 col4    
  1      0  5.66  6    6 
  .      .    .   .    .  
  .      .    .   .    .  
  .      .    .   .    .  
  .      .    .   .    .  
  .      .    .   .    .  

我想将3行缩写成1行 使用平均值(平均 3 行)
我能为此做些什么?

使用groupby后可以拿mean:

>>> df = pd.DataFrame(np.random.randint(0, 10, (9, 5)))
>>> df
   0  1  2  3  4
0  9  7  9  8  8
1  5  5  5  5  7
2  6  5  3  3  0
3  5  2  9  3  3
4  6  0  5  9  4
5  9  8  9  2  3
6  6  9  8  7  2
7  8  1  9  7  6
8  7  9  2  2  8
>>> df.groupby(np.arange(len(df))//3).mean()
          0         1         2         3         4
0  6.666667  5.666667  5.666667  5.333333  5.000000
1  6.666667  3.333333  7.666667  4.666667  3.333333
2  7.000000  6.333333  6.333333  5.333333  5.333333

这是有效的,因为当我们将范围除以 3 时,我们得到 3 个簇:

>>> np.arange(len(df))//3
array([0, 0, 0, 1, 1, 1, 2, 2, 2])

我们可以对这些数字进行分组。这样,即使我们以 2 组结束(比如因为总行数不能被 3 整除),它也会自动给我们正确的平均值。