datetime不转换大写月份缩写

时间:2018-03-27 14:13:48

标签: pandas datetime

我有160万行数据,我需要计算两个日期之间的差异。我已从excel文件中读取数据,然后查找列的dtypes。日期和时间列都具有对象数据类型。我需要将这些列转换为datetime。我试过了,但它只是工作时间而不是约会。我尝试过以下方法:

test = pd.read_excel(datadir+'test.xlsx', sheetname = 'Sheet1' )
test['time'] =  pd.to_datetime(test['time'], format='%H:%M:%S')
test['date'] =  pd.to_datetime(test['date'], format='%d%b%y') 

它确实适用于时间但不适用于日期并给出以下错误:ValueError:未转换的数据仍然存在:14

我也尝试过没有指定日期格式,但后来我得到了ValueError:未知的字符串格式

print(len(test['date']))返回7 print(test['date'].iloc[0])返回17JAN2014。

以下是示例数据: 约会时间 17JAN2014 12:48 18JAN2014 13:15 17JAN2014 09:20 18JAN2014 07:45 04FEB2012 10:00 05FEB2012 17:22 12MAR2012 19:50

我不知道出了什么问题。任何帮助将不胜感激。还有一件事,任何人都可以告诉我如何将日期和时间列合并为一个列作为日期时间?

1 个答案:

答案 0 :(得分:1)

年份存在问题,匹配Y需要YYYYy匹配YY。 另请检查http://strftime.org/

df['date'] =  pd.to_datetime(df['date'], format='%d%b%Y')
print (df)
        date   time
0 2014-01-17  12:48
1 2014-01-18  13:15
2 2014-01-17  09:20
3 2014-01-18  07:45
4 2012-02-04  10:00
5 2012-02-05  17:22
6 2012-03-12  19:50