Pythonでのgroupbyの使い方で、下記のように<元のデータ>を二回に分けてグループ化し、最後に年YEARで結合したのですが、このような回りくどいやり方でなくて、
一回でグループ化して、<元のデータ>から<作りたいデータ>にする方法はないでしょうか?
<コード> YEARでグループ化し、年ごとのBILLING_AMOUNTとHANDLING_CHARGEの合計値を出しています。
contract_invoice_BILLING=pd.DataFrame(contract_invoice.groupby(["YEAR"]).BILLING_AMOUNT.sum()).reset_index()
contract_invoice_HANDRING=pd.DataFrame(contract_invoice.groupby(["YEAR"]).HANDRING_CHARGE.sum()).reset_index()
contract_invoice_total=pd.merge(contract_invoice_BILLING,contract_invoice_HANDRING,left_on="YEAR",right_on="YEAR",how='left')
contract_invoice_total
<元のデータ>
YEAR BILLING_AMOUNT HANDRING_CHARGE
55 2011 1170000 60000
269 2011 2390000 120000
304 2011 180000 10000
745 2012 14960000 720000
848 2012 3420000 170000
... ... ... ...
13461 2015 2540000 130000
13462 2015 1170000 60000
13514 2015 4520000 220000
13709 2015 870000 50000
13892 2015 9720000 470000
<作りたいデータ>
YEAR BILLING_AMOUNT HANDRING_CHARGE
0 2011 3740000 190000
1 2012 66910000 3240000
2 2013 50540000 2560000
3 2014 105660000 5230000
4 2015 67890000 3370000
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/07/24 03:26