2017-02-22 100 views
2

如果有人能够帮助我处理我遇到的熊猫数据框问题,我将不胜感激。在Pandas Dataframe中对列进行分组

我想按列分组一个熊猫数据框,但我不确定如何继续。我有重复的列名(A和B的),想组这回A的最大值和B的

重复列数据框

index  | A | A | A | B | B | 
-------------------------------- 
2015-01-01 | | 1 | 7 | 1 | | 
-------------------------------- 
2015-01-02 | 3 | | | | 5 | 

数据帧一个数据帧处理

index  | A | B | 
-------------------- 
2015-01-01 | 7 | 1 | 
--------------------- 
2015-01-02 | 3 | 5 | 

unique_cols = [A,B] 
df.groupby(by = cols, axis = 1).max() 

这不起作用,因为我得到关于石斑鱼不是1维的错误消息。我也试着调换数据框并按行分组。不过,我得到一个IndexError消息(指数0是出界对轴0与0号

问:

你怎么组重复列一个数据帧的最大从他们返回群组?

回答

4

我想你需要通过子集和第一过滤列然后groupby所有列的值由level=0axis=1

cols = ['A','B'] 
df = df[cols].groupby(level = 0, axis = 1).max() 
print (df) 
       A B 
index    
2015-01-01 7.0 1.0 
2015-01-02 3.0 5.0 

最后如果有必要强制转换为int

df = df[cols].groupby(level = 0, axis = 1).max().astype(int) 
print (df) 
      A B 
index   
2015-01-01 7 1 
2015-01-02 3 5 
+1

谢谢你,我花很长一段时间,试图弄清楚,你看起来很容易! – 12avi