これをやったらエラーが出た
join_data.dtypes
実行結果
detail_id int64
transaction_id object
item_id object
quantity int64
payment_date object
customer_id object
customer_name object
registration_date object
customer_name_kana object
email object
gender object
age int64
birth object
pref object
item_name object
item_price int64
price int64
dtype: object
このjoin_data
というデータから、Payment_month
(月別)ごとのprice
(売上)を集計したい。
join_data.groupby("payment_month").sum()["price"]
実行結果
TypeError: datetime64 type does not support sum operations
どうすれば、エラーが起きなくなる?
結論
sum(numeric_only=True)
と書いて、数値型のみ演算させる
考察
前提として、Anaconda下で仮想環境をアクティベートしています。バージョンは以下の通り。
Anaconda: 23.9.0
Python: 3.9.18
Pandas: 2.0.3
調べていたところ、この記事を紹介していただいたので読んでみました。
https://github.com/pandas-dev/pandas/issues/52558
すると、「sum(numeric_only=True)
とすることで解決できるよ」というコメントがありました。
そのコメントに従ってやってみたら、解決できました。
多分、sum()
のまま実行するとsum(numeric_only=None)
と同義になり、数値型以外の型まで演算してしまう。それが原因でエラーが起きたと推察しています。