python - 将 Pandas 数据框中的对象列转换为日期时间

标签 python pandas datetime

我在 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/

相关文章:

C#如何计算排除特定日期的工作日(节假日)

mysql - 错误 #1265 - 无法在默认 'none' 字段中插入空值

mysql - 我可以获取特定格式的时间戳吗

python - 如何在 Sympy Sum 中索引 Python 列表?

python - 将计数器对象映射到 DataFrame 以创建新列

python - 如何创建动态数组

pandas - ModuleNotFoundError : No module named 'xlsxwriter' in databricks

python - 通过使用 python 和 pandas 使用 2 个现有列的函数填充新列

python - “QuerySet”对象没有属性。奇怪的情况

python - Py-StackExchange 按标签过滤