keep-loving-pythonのブログ

Pythonを愛し続けたいです(Pythonが流行っている限りですが。。。)

解決策。ValueError: time data 'Jun 15' does not match format '%m %d' (match)。pandas。

エラー

ValueError: time data 'Jun 15' does not match format '%m %d' (match)

エラー詳細

Traceback (most recent call last):
  File "C:\Users\XYZZZ\AppData\Local\Programs\Python\Python37\lib\site-packages\pandas\core\tools\datetimes.py", line 509, in _to_datetime_with_format
    values, tz = conversion.datetime_to_datetime64(arg)
  File "pandas\_libs\tslibs\conversion.pyx", line 359, in pandas._libs.tslibs.conversion.datetime_to_datetime64
TypeError: Unrecognized value type: <class 'str'>

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "_pandas_datetime4.py", line 7, in <module>
    df["Date"] = pd.to_datetime(df["Month"]+" "+df["Day"].astype(str), format="%m %d")
  File "C:\Users\XYZZZ\AppData\Local\Programs\Python\Python37\lib\site-packages\pandas\core\tools\datetimes.py", line 887, in to_datetime
    values = convert_listlike(arg._values, format)
  File "C:\Users\XYZZZ\AppData\Local\Programs\Python\Python37\lib\site-packages\pandas\core\tools\datetimes.py", line 394, in _convert_listlike_datetimes
    arg, orig_arg, name, tz, format, exact, errors, infer_datetime_format
  File "C:\Users\XYZZZ\AppData\Local\Programs\Python\Python37\lib\site-packages\pandas\core\tools\datetimes.py", line 513, in _to_datetime_with_format
    raise err
  File "C:\Users\XYZZZ\AppData\Local\Programs\Python\Python37\lib\site-packages\pandas\core\tools\datetimes.py", line 501, in _to_datetime_with_format
    arg, name, tz, fmt, exact, errors, infer_datetime_format
  File "C:\Users\XYZZZ\AppData\Local\Programs\Python\Python37\lib\site-packages\pandas\core\tools\datetimes.py", line 436, in _array_strptime_with_fallback
    result, timezones = array_strptime(arg, fmt, exact=exact, errors=errors)
  File "pandas\_libs\tslibs\strptime.pyx", line 150, in pandas._libs.tslibs.strptime.array_strptime
ValueError: time data 'Jun 15' does not match format '%m %d' (match)

環境

windows10
python3.7
pandas1.3.5

エラーが発生するコード

import pandas as pd

df = pd.DataFrame({"Month":["Jun"],"Day":[15]})
##df["Date"] = pd.to_datetime(df["D"])
df["Date"] = pd.to_datetime(df["Month"]+" "+df["Day"].astype(str), format="%m %d")
print(df["Date"])

解決策

mじゃなくてbです
フォーマット指定子は、ちゃんとしてないとダメみたい。

df["Date"] = pd.to_datetime(df["Month"]+" "+df["Day"].astype(str), format="%b %d")

参考にすべきサイト

www.yutaka-note.com

引用↓

コメント

特にありません。