对python和pandas陌生,我遇到了下一个问题。 在我的数据框中,我有一个带有日期的列(yyyy-mm-ddThh-mm-sec),其中大部分年份都可以(看起来像2008),而一部分则年份写为0008。使用pd.to_datetime格式化列的问题。
我的想法是先将其转换为两位数的年份(使用pd.to_datetime(df ['date'])。dt.strftime('%y%b,%d%H:%M:%S。 %f +%Z')),但我收到了一个错误,超出了十亿分之一秒的时间戳:08-10-02 14:41:00。
在数据框中是否还有其他选项可以将0008转换为2008?
非常感谢您的帮助
答案 0 :(得分:4)
如果不良数据的格式始终相同(不良年份中始终为4个字符),则可以使用str
:
df = pd.DataFrame({'date':['2008-01-01', '0008-01-02']})
df['date'] = pd.to_datetime(df['date'].str[2:], yearfirst=True)
date
0 2008-01-01
1 2008-01-02