2016-04-14 14 views
1

とインデックスをリセット:パイソン(パンダ) - 私は、データフレームを持って、カウント

HH  PERSON SPOT WEIGHT 
    1002141 aa 1  1332.25 
    1011831 ab 1  2083.31 
    1031726 aa 1  2589.09 
    1042819 aa 1  4736.28 
    1043006 aa 1  1588.39 
    1043006 aa 1  1588.39 
    1060911 aa 1  1113.97 
    1001665 aa 2  3202.09 
    1001762 aa 2  2048.54 

私がやろうとしているどのような数の欄に自分自身を繰り返してすべてのオカレンスを作成することで、 ライン上の例では5と6は同じですので、私は出力になりたいたい:私は何

HH  PERSON SPOT WEIGHT COUNT  
    1002141 aa 1  1332.25  1 
    1011831 ab 1  2083.31  1 
    1031726 aa 1  2589.09  1 
    1042819 aa 1  4736.28  1 
    1043006 aa 1  1588.39  2 
    1060911 aa 1  1113.97  1 
    1001665 aa 2  3202.09  1 
    1001762 aa 2  2048.54  1 

です:

count_table=df.groupby(['HH','PERSON','SPOT ID']).agg(['count']).reset_index() 

これはうまくいきますが、インデックスがすべて乱れてしまい、元のインデックスではなくHHカラムでソートされます。

どのように私はテーブルのインデックスをリセットすることができますアイデア?

答えて

1

あなたは、このケースでちょうどグループサイズでカウント列を追加するには、このためにtransformを使用することができます。

In [164]: 
df['Count'] = df.groupby(['HH','PERSON','SPOT'])['WEIGHT'].transform('size') 
df 

Out[164]: 
     HH PERSON SPOT WEIGHT Count 
0 1002141  aa  1 1332.25  1 
1 1011831  ab  1 2083.31  1 
2 1031726  aa  1 2589.09  1 
3 1042819  aa  1 4736.28  1 
4 1043006  aa  1 1588.39  2 
5 1043006  aa  1 1588.39  2 
6 1060911  aa  1 1113.97  1 
7 1001665  aa  2 3202.09  1 
8 1001762  aa  2 2048.54  1 
+0

グレート!ありがとうございました! –

関連する問題