下記のような支払いのデータがあります。dateは支払日、codeは工事番号、amountは支払金額です。
date | code | amount |
---|---|---|
2019/4/1 | 1001 | 100000 |
2019/4/2 | 1002 | 300000 |
2019/4/3 | 1001 | 100000 |
2019/5/3 | 1003 | 400000 |
2019/6/4 | 1001 | 100000 |
工事毎の各月毎の支払金額を集計したいです。
最終的に下記のような集計ができればと考えています。
code | year-month | amount |
---|---|---|
1001 | 2019-04 | 200000 |
1001 | 2019-06 | 100000 |
1002 | 2019-04 | 300000 |
1003 | 2019-05 | 400000 |
下記のコードを書きました。
python
1import pandas as pd 2# 支払一覧のデータフレーム 3payment_df = pd.DataFrame([['2019/4/1', 1001, 100000], ['2019/4/2', 1002, 300000],['2019/4/3', 1001, 100000], ['2019/5/3', 1003, 400000], ['2019/6/4', 1001, 100000]], columns=['date', 'code', 'amount']) 4 5# dateをdatetime64型に変換 6payment_df['date'] = pd.to_datetime(payment_df['date']) 7 8# dateから年と月を取り出す。 9payment_df['year'] = payment_df['date'].dt.year 10payment_df['month'] = payment_df['date'].dt.month 11 12""" 13ここで、yearとmonthを結合できれば良いと思う(例:2019-04、2019-05、2019-06)のですが、その方法が分かりません。 14下記のようなことができれば良いのですが、エラーになります。 15payment_df['year_month'] = str(payment_df['year'])+ "-" + str(payment_df['month']) 16""" 17 18multi_groupby = payment_df.groupby(['code', 'year_month'])['amount'].sum() 19
考えた方法は、上記の通り、year-monthというseriesを作ることですが、うまくいきませんでした。
月次で集計するために、どんな方法をとれば良いでしょうか。
お分かりの方、ご教示頂ければ幸いです。
よろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2019/04/25 09:42