繁体   English   中英

将pandas dataframe中的对象列转换为datetime

[英]Converting object column in pandas dataframe to datetime

我在pandas数据框中有一个对象列,格式为dd / mm / yyyy,我想用to_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而我看不到一个。

这意味着你有一个额外的空间。 虽然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:未转换的数据仍然存在:

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]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM