2017-10-08 9 views
0

私は 'イベント'Pandas groupby sumはキーを変更します、なぜですか?

id event_type_1 event_type_2 event_type_3 
234    0    1    0 
234    1    0    0 
345    0    0    0 

と呼ばれるこのデータセットを持っていると私は私が

event.groupby('id').sum() 

を使用してみましたが、それはただ

id event_type_1 event_type_2 event_type_3 
1    1    1    0 
2    0    0    0 
を生産し、この

id event_type_1 event_type_2 event_type_3 
234    1    1    0 
345    0    0    0 

を生成したいです

id hasは '1'から始まるインクリメント値に置き換えられました。どうして?そして、私は望みの結果をどうやって得るのですか?

+0

は、あなたが ''プリント(event.columns.tolist())の出力を投稿することができ効果的 「SQLスタイル」とは? – MaxU

+0

私はこの動作を再現できません - あなたのサンプルデータセットに対してあなたのコードを試すことができますか?それは何を生成しますか? – MaxU

+0

mmmm ...サンプルデータセットで動作します... – user1753640

答えて

1

使用as_index=False parameter

In [163]: event.groupby('id', as_index=False).sum() 
Out[163]: 
    id event_type_1 event_type_2 event_type_3 
0 234    1    1    0 
1 345    0    0    0 

docsから:

as_index:集約された出力の場合

真のブール値、デフォルト、インデックスとしてグループラベルを持つオブジェクトを返します。 DataFrame入力にのみ関連します。 as_index = Falseの場合、グループ化された出力

+1

私は 'as_index = False'を提案しようと考えました - しかし、OPが彼らが与えた入力が与えられていると言うことをOPがどのようにして得るのか分かりません...' id'を列として再現できません。 OPの結果をインデックスとして... –

+0

@JonClements、私はあなたの意見を理解しているかどうか分からない...「Falseを渡すことはあなたに新しい何かを与える可能性が高い」と言ってどういう意味ですか? – MaxU

+0

こんにちはMaxU、あなたの提案に感謝しますが、Jonが指摘したようにインデックスをリセットしました。理由は分かりません。 – user1753640

関連する問題