keep-loving-pythonのブログ

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

解決策。dateutil.parser._parser.ParserError: Unknown string format:。pandas。

エラー内容

エラー

dateutil.parser._parser.ParserError: Unknown string format: 20211123

エラー詳細

↓ Traceback 2回の刑。

Traceback (most recent call last):
  File "C:\Users\XYZZZ\AppData\Local\Programs\Python\Python37\lib\site-packages\pandas\core\arrays\datetimes.py", line 2192, in objects_to_datetime64ns
    values, tz_parsed = conversion.datetime_to_datetime64(data.ravel("K"))
  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_datetime3.py", line 6, in <module>
    df["Date"] = pd.to_datetime(df["Date"])
  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 408, in _convert_listlike_datetimes
    allow_object=True,
  File "C:\Users\XYZZZ\AppData\Local\Programs\Python\Python37\lib\site-packages\pandas\core\arrays\datetimes.py", line 2198, in objects_to_datetime64ns
    raise err
  File "C:\Users\XYZZZ\AppData\Local\Programs\Python\Python37\lib\site-packages\pandas\core\arrays\datetimes.py", line 2187, in objects_to_datetime64ns
    allow_mixed=allow_mixed,
  File "pandas\_libs\tslib.pyx", line 379, in pandas._libs.tslib.array_to_datetime
  File "pandas\_libs\tslib.pyx", line 611, in pandas._libs.tslib.array_to_datetime
  File "pandas\_libs\tslib.pyx", line 749, in pandas._libs.tslib._array_to_datetime_object
  File "pandas\_libs\tslib.pyx", line 740, in pandas._libs.tslib._array_to_datetime_object
  File "pandas\_libs\tslibs\parsing.pyx", line 257, in pandas._libs.tslibs.parsing.parse_datetime_string
  File "C:\Users\XYZZZ\AppData\Local\Programs\Python\Python37\lib\site-packages\dateutil\parser\_parser.py", line 1374, in parse
    return DEFAULTPARSER.parse(timestr, **kwargs)
  File "C:\Users\XYZZZ\AppData\Local\Programs\Python\Python37\lib\site-packages\dateutil\parser\_parser.py", line 649, in parse
    raise ParserError("Unknown string format: %s", timestr)
dateutil.parser._parser.ParserError: Unknown string format: 20211123

環境

windows10
python3.7
pandas 1.3.5

ソース

↓ こんなシンプルなコード。

import pandas as pd

df = pd.DataFrame({"Date":["2021年11月23日", "2021年11月24日", "2021年11月25日"]})
df["Date"] = pd.to_datetime(df["Date"])

↓↑ ここを参考にしました。 https://www.yutaka-note.com/entry/pandas_datetime

解決策

フォーマットを教えるだけ。

df["Date"] = pd.to_datetime(df["Date"], format="%Y年%m月%d日")

コメント

特にありません。。。。(エラーで心を折られないように)慣れる必要あり。