私はこのようになりますpd.DataFrame
ありますGROUPBY()とパンダにおける集約は
In [149]: df
Out[149]:
AMOUNT DATE ORDER_ID UID
0 1001 2014-01-02 101 1
1 1002 2014-01-03 102 3
2 1003 2014-01-04 103 4
3 1004 2014-01-05 104 5
4 1005 2014-01-09 105 5
5 1006 2014-01-07 106 7
6 1007 2014-01-08 107 8
7 1008 2014-01-09 108 5
8 1009 2014-01-10 109 10
9 1500 2014-01-09 110 5
をし、私は1つの行に同じUIDとDATEに対応するすべての行を切り捨てるとの合計を使用したいです残る1行分のAMOUNT
列の値。要するに
、所望の出力は次のようになります。本質的には
In [149]: df Out[149]: AMOUNT DATE ORDER_ID UID 0 1001 2014-01-02 101 1 1 1002 2014-01-03 102 3 2 1003 2014-01-04 103 4 3 1004 2014-01-05 104 5 4 3513 2014-01-09 105 5 ## <- Rows that previously had index [7,9,4] are now truncated to this one row and the AMOUNT is the sum of of the AMOUNT values of those three rows 5 1006 2014-01-07 106 7 6 1007 2014-01-08 107 8 8 1009 2014-01-10 109 10
、私は何をしたいものに同じユーザーのUIDとDATEに対応して「集計」のすべての行であります他のすべての行はそのまま残してください。
私がこれまで試したことはこれです:どこ元df
に行くと「余分」を削除するには、いずれかの順序で起動するように、私はよく分からない
In [154]: df.groupby(['UID','DATE'])['AMOUNT'].sum()
Out[154]:
UID DATE
1 2014-01-02 1001
3 2014-01-03 1002
4 2014-01-04 1003
5 2014-01-05 1004
2014-01-09 3513
7 2014-01-07 1006
8 2014-01-08 1007
10 2014-01-10 1009
Name: AMOUNT, dtype: int64
けど残りの1行に新しい合計値AMOUNT
を割り当てる方法もありません。
ご協力いただきありがとうございます。
ご迷惑をおかけして申し訳ございません。別のインデックスが必要ですか? – ayhan
@ayhanこれを調べてくれてありがとう。私は実際にインデックスに興味を持っているわけではなく、効果的なやり方を見つけることができないという「切捨て」だけです。 – Thanos