Pandas datetime不转换大写月份缩写
我有160万行数据,我需要计算两个日期之间的差异。我从excel文件中读取数据,然后查找列的数据类型。日期和时间列都有对象数据类型。我需要将这些列转换为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['
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