2016-05-14 34 views
1

我有以下df如何我可以通过索引,使组每列平均

   Blades & Razors & Foam Diaper Empty Fem Care HairCare Irrelevant Laundry Oral Care Others Personal Cleaning Care Skin Care 
retailer                                 
RTM        158 486 193  2755  3490  1458  889  2921  69     1543  645 
RTM        39  0 28  2305  80   27  0   0  0     1207  414 
RTM        98 276 121  1090  2359  717  561  911 293     1286  528 
RTM        107 484 54  2136  2777  151  80  2191  7     1096  673 
RTM        156 465 254  2972  2802  763  867  1065  8     2777  728 
RTM        126 326 142  2126  2035  581  575  753  45     1768  292 
RTM        0  0 181  1816  1455  598  579   0  2     749  451 
RTM        86 374 308  2197  2075  576  698  693  26     1398  212 
RTM        132  61 153  2094  1508  180  590  785  66     1519  486 
RTM        90 303  8  0  0   18  0  60  0     358   0 
RTM        0  14  6  190  198   21  131  75  18     171   0 

我想使groupby()index,然后在每一个column同组获得平均?任何想法如何获得?

+0

你的意思是'df.groupby(level = 0).mean()'?或'df.mean(level = 0,axis = 1)'? – EdChum

回答

0

要组上索引,使用:

df.groupby(level=0).mean() 

df.groupby(df.index).mean() 

样品:

df = pd.DataFrame(data=np.random.random((10, 5)), columns=list('CDEFG'), index=list('AB')*5) 
df.head() 

      C   D   E   F   G 
A 0.230504 0.830818 0.560533 0.266903 0.745196 
B 0.996806 0.861006 0.257780 0.258976 0.738617 
A 0.409191 0.688814 0.214247 0.309678 0.565571 
B 0.805192 0.940919 0.707562 0.772370 0.122562 
A 0.596964 0.935662 0.493612 0.108362 0.673538 

为上述任一产量:

  C   D   E   F   G 
A 0.328301 0.560188 0.632549 0.491101 0.343343 
B 0.405996 0.490331 0.540921 0.394136 0.466504 
      C   D   E   F   G 
A 0.328301 0.560188 0.632549 0.491101 0.343343 
B 0.405996 0.490331 0.540921 0.394136 0.466504