Pandas datetime不转换大写月份缩写

Pandas datetime不转换大写月份缩写,pandas,datetime,Pandas,Datetime,我有160万行数据,我需要计算两个日期之间的差异。我从excel文件中读取数据,然后查找列的数据类型。日期和时间列都有对象数据类型。我需要将这些列转换为datetime。我试过了,但它只对时间有效,对日期无效。我尝试了以下方法: test = pd.read_excel(datadir+'test.xlsx', sheetname = 'Sheet1' ) test['time'] = pd.to_datetime(test['time'], format='%H:%M:%S') test['

我有160万行数据,我需要计算两个日期之间的差异。我从excel文件中读取数据,然后查找列的数据类型。日期和时间列都有对象数据类型。我需要将这些列转换为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:Unknown string format

print(len(test['date']))
返回7
print(test['date'].iloc[0])
返回2014年1月17日

以下是示例数据: 日期时间 2014年1月17日12:48 2014年1月18日13:15 2014年1月17日09:20 2014年1月18日07:45 2012年2月4日10:00 2012年2月5日17:22 2012年3月12日19:50


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

年有问题,需要
Y
匹配
YYYY
Y
匹配
YY

也检查一下


谢谢放置%Y非常适合于样本数据。我刚刚在最后一个有160万行的数据集上尝试了同样的方法,我得到了以下错误:OutOfBoundsDatetime:outofbounds纳秒时间戳:2999-12-31 00:00:00。你明白这是什么意思吗?这意味着数据无效,因为。一种可能的解决方案是通过
df['date']=pd将有问题的日期转换成
NaT
s。转换成日期时间(df['date'],格式='%d%b%Y',errors='concurve')
,处理此数据是非常困难的,但从字符串转换是痛苦的,我认为应用是必要的。
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