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

2024-05-15

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

时间戳 user_id 成本 val1
2011 年 1 月 1 日 1 1 3
2012 年 1 月 7 日 1 19 57
2013 年 1 月 9 日 1 21 63
2011 年 1 月 2 日 2 20 8

为此,我使用了以下声明: 将 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

如果您确定您的输入文件具有正确格式的时间戳,并且您想在默认解析器之上使用它,就像在本例中一样,请使用(按照@filmor的建议)dayfirst选项pd.to_datetime

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

Case 2

当你不确定格式的正确性时,使用默认的, pd.to_datetime(df['时间戳'], dayfirst=True)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

pd.to_datetime 更改日期格式产生错误的日​​期 的相关文章

随机推荐