将pandas数据框中的对象列转换为datetim

2024-04-27 01:06:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个pandas数据框中的对象列,格式为dd/mm/yyyy,我想用它转换为\u datetime。

我试图使用以下命令将其转换为datetime:

df['Time stamp'] = pd.to_datetime(df['Time stamp'], format= '%d/%m/%Y')

我得到以下错误:

TypeError: Unrecognized value type: <class 'str'>
ValueError: unconverted data remains:  

这是否意味着某处有一个空白行,我已经检查了原始csv,但看不到。


Tags: to数据对象命令formatpandasdfdatetime
1条回答
网友
1楼 · 发布于 2024-04-27 01:06:32

这意味着你有一个额外的空间。尽管pd.to_datetime在通常不指定任何格式的情况下非常擅长解析日期,但当您实际指定格式时,它必须完全匹配。

您可以通过在转换之前添加.str.strip()来删除多余的空白来解决问题。

import pandas as pd
df['Time stamp'] = pd.to_datetime(df['Time stamp'].str.strip(), format='%d/%m/%Y')

或者,您可以使用dayfirst=True参数利用它解析各种格式日期的能力

df['Time stamp'] = pd.to_datetime(df['Time stamp'], dayfirst=True)

示例:

import pandas as pd
df = pd.DataFrame({'Time stamp': ['01/02/1988', '01/02/1988 ']})

pd.to_datetime(df['Time stamp'], format= '%d/%m/%Y')

ValueError: unconverted data remains:

pd.to_datetime(df['Time stamp'].str.strip(), format='%d/%m/%Y')
#0   1988-02-01
#1   1988-02-01
#Name: Time stamp, dtype: datetime64[ns]

pd.to_datetime(df['Time stamp'], dayfirst=True)
#0   1988-02-01
#1   1988-02-01
#Name: Time stamp, dtype: datetime64[ns]

相关问题 更多 >