PYTHON:DataFrame中的缩写大数据

时间:2015-07-03 02:13:44

标签: python abbreviation

我的数据在数据帧中构成了太多行 ex)输入:

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 
  .      .    .   .    .  
  .      .    .   .    .  
  .      .    .   .    .  
  .      .    .   .    .  
  .      .    .   .    .  

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

1 个答案:

答案 0 :(得分:0)

使用mean后,您可以使用groupby

>>> 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整除),它会自动给出正确的平均值。