我从一个 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/