使用 pandas 将字符串转换为日期时间:类型错误:<class 'list'> 无法转换为日期时间

bel*_*ums 6 python datetime pandas

我有一个 Pandas Dataframe,其日期列具有以下结构:

352    [2012-01-12 05:04:58]
353    [2008-07-16 20:38:21]
354    [2009-05-12 01:05:48]
355    [2012-01-12 05:04:58]
356    [2018-01-05 15:06:41]
357    [2017-07-17 22:03:43]

Name: Date, Length: 358, dtype: object
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,这些是带有 的“对象”。我想将它们转换为 Datetime 对象。所以我使用了 pandas 函数:

pd.to_datetime(df['Date'])
Run Code Online (Sandbox Code Playgroud)

这给了我以下错误:

Traceback (most recent call last):
  File "/anaconda3/envs/py35thesis/lib/python3.5/site-packages/IPython/core/interactiveshell.py", line 3267, in run_code
    exec(code_obj, self.user_global_ns, self.user_ns)
  File "<ipython-input-185-adf5e63a666b>", line 1, in <module>
    pd.to_datetime(df['Date'])
  File "/anaconda3/envs/py35thesis/lib/python3.5/site-packages/pandas/core/tools/datetimes.py", line 451, in to_datetime
    values = _convert_listlike(arg._values, True, format)
  File "/anaconda3/envs/py35thesis/lib/python3.5/site-packages/pandas/core/tools/datetimes.py", line 368, in _convert_listlike
    require_iso8601=require_iso8601
  File "pandas/_libs/tslib.pyx", line 492, in pandas._libs.tslib.array_to_datetime
  File "pandas/_libs/tslib.pyx", line 744, in pandas._libs.tslib.array_to_datetime
  File "pandas/_libs/tslib.pyx", line 677, in pandas._libs.tslib.array_to_datetime
TypeError: <class 'list'> is not convertible to datetime
Run Code Online (Sandbox Code Playgroud)

Vai*_*ali 3

假设您的列名称是日期,您可以使用 apply

df['date'] = df['date'].apply(lambda x: pd.to_datetime(x[0]))

    date
352 2012-01-12 05:04:58
353 2008-07-16 20:38:21
Run Code Online (Sandbox Code Playgroud)