python - pd.to_datetime 更改日期格式产生错误的日​​期

标签 python pandas

我从一个 csv 文件中提取了下表:

时间戳 user_id 成本 val1
2011 年 1 月 1 日
01/07/2012
01/09/2013
01/02/2011

为此,我使用了以下语句:
将 Pandas 导入为 pd

newnames = ['date','user_id', 'cost', 'val1']
df = pd.read_csv('expenses.csv', names = newnames, header = False)
df['timestamp'] = pd.to_datetime(df['timestamp'],format='%d%m%Y')

但是在 df 中获得的表的日期是错误的:月和日无故排列,即 01/09/2013 无故变为 09/01/2013。

非常感谢您的帮助。

最佳答案

嗨,有时由于美国/欧洲时间解析兼容性而发生。

我遵循的是,

Case 1



如果您确定您的输入文件具有正确格式的时间戳,并且您想在默认解析器之上使用它,就像在这种情况下一样,请在 pd.to_datetime 中使用(如@filmor 所建议的)dayfirst 选项
pd.to_datetime(df['timestamp'], dayfirst=True)

Case 2



当您不确定格式的正确性时,请使用默认值,
pd.to_datetime(df['timestamp'], dayfirst=True)

关于python - pd.to_datetime 更改日期格式产生错误的日​​期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22786144/

相关文章:

python - Django queryset获取values()中的所有字段加上外键字段

python - `pyyaml` 可以 't parse ` pydantic ` object if ` Typing` 模块被使用

python - 提取访问多个(纬度,经度)的 ID 的最大距离

python-3.x - 如何从 Pandas 数据框中的两列中提取匹配的关键字?

c++ - Haar Cascades 在黑暗照明中效果不佳

python - 为什么不需要一个强大的 IDE 来编写 Python?

python - 更改元组列表中元组的第一个值

Python填充字符串列 "forward"并将groupby结果附加到数据帧

python - 将不同大小的数据集分割成单独的数据帧

python - 如何设置Pandas数据框where条件的多个值