2016-06-27 6 views
0

私はいくつかの独立した列を持つpandas DataFrameを持っています。それらを巻き戻し/集約する効率的な方法を探しています。Pandas DataFrames列の集約セット

それでは、私はテーブルを持っているとしましょう:

行2,3,4が独立している
+-----+-----+-------+------+-------+ 
| One | Two | Three | Four | Count | 
+-----+-----+-------+------+-------+ 
| a | x | y  | y | 3  | 
+-----+-----+-------+------+-------+ 
| b | z | x  | x | 5  | 
+-----+-----+-------+------+-------+ 
| c | y | x  | y | 1  | 
+-----+-----+-------+------+-------+ 

私はテーブルで終わるしたいと思います:

+-----+-------+-------+ 
| One | Other | Count | 
+-----+-------+-------+ 
| a | x  | 3  | 
+-----+-------+-------+ 
| a | y  | 6  | 
+-----+-------+-------+ 
| b | x  | 10 | 
+-----+-------+-------+ 
| b | z  | 5  | 
+-----+-------+-------+ 
| c | x  | 1  | 
+-----+-------+-------+ 
| c | y  | 2  | 
+-----+-------+-------+ 

はどのようにこれを達成するための最良の方法だろうか?

GROUPBY OneOther列と sum Count列あなたはその後、ワイドからの長い形式にデータフレームを再形成する pandasから melt機能を使用することができます

答えて

0

import pandas as pd 
pd.melt(df, id_vars = ['One', 'Count'], value_name = 'Other').groupby(['One', 'Other'])['Count'].sum().reset_index() 

    One Other Count 
0 a x 3 
1 a y 6 
2 b x 10 
3 b z 5 
4 c x 1 
5 c y 2