2016-10-10 8 views
-1

i "は1000行* 4列" DATAFRAMEありますgroupbyは列を連結しますか?

a  b c d 
1  aa 93 4 
2  bb 32 3 
... 
1000 nn 78 2 
**[1283 rows x 4 columns]** 

をし、私はそれらの列の3に基づいてグループにGROUPBYを使用します。

df.groupby(['a','b','c']).sum() 

print(df) 
a  b c d 
1  aa 93 12 
2  bb 32 53 
... 
1000 nn 78 38 
**[1283 rows x 1 columns]** 

しかし、結果は私に「1000を与えます行* 1列 "データフレーム。だから私の質問はGroupbyが1つの列として列を連結する場合ですか?はいの場合はどうすればそれを防ぐことができます。データをグループ化してプロットしたいのですが、すべて4ではなく1つの列しか表示されないのでできません。

編集:列を呼び出すと、最後の列しか取得できません。 'a'、 'b'、 'c'は列として、なぜそれが、どうやってそれらを再び列としてマークできますか?

あなたはそれをこのように行うことができます
df.columns 
Index([u'd'], dtype='object') 
+0

いいえ、 '' GROUPBYグループあなたの行:

df.groupby(['a','b','c'], as_index=False).sum() 

かを。列は、ほとんどの目的と目的のために、階層索引のようになります。集計した後、同じ行数を取得している場合、グループ化した各列は一意であると私には思われます。 –

+0

私は質問を編集しました。列を呼び出すときに列として「d」だけ表示されるので、ここでは私の問題ではないと思います。 – faranak777

+0

グループ化の列がインデックスに配置されています。彼らはまだデータセットに入っています。 'df.groupby(['a'、 'b'、 'c'])。sum()。reset_index()はそれらをインデックスから通常列に戻します。 –

答えて

1

:あなたが指定した列で

df.groupby(['a','b','c']).sum().reset_index() 
+0

ありがとう、Paul'sの答えもありがとう – faranak777

関連する問題