2017-02-22 9 views
2

私が持っているパンダのデータフレームの問題を誰かが助けてくれると感謝します。パンダのデータフレームの列のグループ化

私はパンダのデータフレームを列でグループ化しようとしていますが、続行方法がわかりません。私は

を処理した後、AさんとBさん

重複列DATAFRAME

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

データフレームの最大値を返すために重複する列名(AさんとBさん)とのデータフレームとしたいグループにこれらを持っています

index | A | B | -------------------- 2015-01-01 | 7 | 1 | --------------------- 2015-01-02 | 3 | 5 | unique_cols = [A,B] df.groupby(by = cols, axis = 1).max() 

Grouperについてのエラーメッセージが1次元ではないため、これは機能しません。私はまた、データフレームを転置し、行ごとにグループ化することを試みました。しかし、私ははIndexErrorメッセージが表示されます(インデックス0は、サイズ0を軸0の境界の外にある)

質問:

からそれらの最大値を返すために、重複する列を持つあなたがグループデータフレームにはどうすればよいですグループ?

答えて

4

私はaxis=1であなたがサブセットによって第一のフィルタ列が必要だと思うし、その後level=0により、すべての列の値によってgroupby

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

関連する問題