1. ホーム
  2. python

[解決済み】AttributeError: .dt アクセサは、datetimelike 値でしか使用できません。

2022-01-24 11:25:31

質問

こんにちは、私は列を月に変換するためにpandasを使用しています。 私のデータを読み込むと、それらはオブジェクトです。

Date           object
dtype: object

そこで、まずは日付時刻にし、次に月単位にしようと思っています。

import pandas as pd
file = '/pathtocsv.csv'
df = pd.read_csv(file, sep = ',', encoding='utf-8-sig', usecols= ['Date', 'ids'])    
df['Date'] = pd.to_datetime(df['Date'])
df['Month'] = df['Date'].dt.month

また、それが役に立つなら。

In [10]: df['Date'].dtype
Out[10]: dtype('O')

で、出るエラーはこんな感じ。

/Library/Frameworks/Python.framework/Versions/2.7/bin/User/lib/python2.7/site-packages/pandas/core/series.pyc in _make_dt_accessor(self)
   2526             return maybe_to_datetimelike(self)
   2527         except Exception:
-> 2528             raise AttributeError("Can only use .dt accessor with datetimelike "
   2529                                  "values")
   2530 

AttributeError: Can only use .dt accessor with datetimelike values

を編集しました。

日付カラムはこんな感じです。

0         2014-01-01         
1         2014-01-01         
2         2014-01-01         
3         2014-01-01         
4         2014-01-03       
5         2014-01-03         
6         2014-01-03         
7         2014-01-07         
8         2014-01-08         
9         2014-01-09 

何かアイデアはありますか? ありがとうございました。

解決方法は?

ここで問題になっているのは to_datetime のままです。 str/object を設定した場合 errors='coerce' に設定すると、特定の文字列で変換に失敗した場合、それらの行は NaT .

df['Date'] = pd.to_datetime(df['Date'], errors='coerce')

ですから、それらの特定の行の値のどこが問題なのかを見つける必要があります。

を参照してください。 ドキュメント