熊猫:如何使用列名进行分组和汇总?

时间:2019-02-18 22:13:16

标签: pandas

我有一个看起来像这样的数据框

           col1 col2 col3 col4 .... col90
 row1       1    2    3    4   ....  90
 row2       91   92   93   94  ..... 180
   ......
 row1000  1001 1002 1003 1004 .... 1090

我想一次将列分为3组,并取每一行的平均值。

我按如下操作:

我生成列表列表

  [['col1','col2','col3], ['col4','col5','col6']....
    ['col88','col89','col90']]

我想使用此列表列表从数据框中选择这些列,并为每一行计算平均值,并生成具有原始行和三分之一列数的结果数据框(数据一次聚合三列) )。

我认为正确的方法是使用列名进行分组,然后进行聚合,但是我不确定如何进行。我想避免循环。我该怎么做?谢谢。

1 个答案:

答案 0 :(得分:1)

groupby//一起使用

df.groupby((df.columns.str[3:].astype(int)-1)//3,axis=1).sum()
Out[323]: 
       0   1    29
row1    6   4   90
row2  276  94  180