我在 pandas 数据框中有一个格式为 dd/mm/yyyy 的对象列,我想使用 to_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: 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]
关于python - 将 Pandas 数据框中的对象列转换为日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51898826/