简体   繁体   English

在pandas中对相同的列名进行分组

[英]Grouping on identical column names in pandas

time       A1    A1    A2    A2     A2    A3   A3 
2017-01    a1    a2    b1    b2      c    .....
2017-02    a3    a4    b3    b4      c
2017-03    a5    a6    b5    b6      c
....

There is a dataframe as shown above. 有一个如上所示的数据帧。 How to get mean value of the columns which have the same name( as shown below)? 如何获得具有相同名称的列的平均值(如下所示)?

time            A1             A2           A3
2017-01    (a1+a2)/2       (b1+b2+c)/3      c
2017-02     .....
2017-03 

Use groupby with level=0 and axis=1 . 使用groupbylevel=0axis=1

df.groupby(level=0, axis=1).mean()

np.random.seed(0)
df = pd.DataFrame(np.random.choice(10, (3, 5)), columns=list('AAABB'))

df

   A  A  A  B  B
0  5  0  3  3  7
1  9  3  5  2  4
2  7  6  8  8  1

df.groupby(level=0, axis=1).mean()

          A    B
0  2.666667  5.0
1  5.666667  3.0
2  7.000000  4.5

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM