8
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

TypeError: datetime64 type does not support sum operations の対応方法

Last updated at Posted at 2023-10-06

これをやったらエラーが出た

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)と同義になり、数値型以外の型まで演算してしまう。それが原因でエラーが起きたと推察しています。

8
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?