pd.to_datetime我吹爆!太强了

最近发现pd.to_datetime函数可以自动推断日期格式,而且不同格式的日期时间可以同批次处理。如下:

In [5]: df
Out[5]: 
                   0  1
0  2019-1-3 19:00:23  1
1  2019/1/2 19:00:22  2
2           2019-1-1  3
3             2019-2  4
4     2019-1-2 19:00  5
In [8]: df['e']=pd.to_datetime(df[0])

In [9]: df['e']
Out[9]: 
0   2019-01-03 19:00:23
1   2019-01-02 19:00:22
2   2019-01-01 00:00:00
3   2019-02-01 00:00:00
4   2019-01-02 19:00:00
Name: e, dtype: datetime64[ns]

后来发现在读取文件的时候即指定解析日期方法与读取之后再解析,两者时间相差一倍。如下所示:

读取时即解析日期

%timeit pd.read_csv(r'D:\桌面快捷方式\滴滴\出租车数据\taxi_shanghai\02\{}.csv'.format(hour),
				parse_dates=['数据接收时间','终端GPS时间'],
				date_parser=pd.to_datetime).drop(columns='Unnamed: 0').dropna()
# 17s

读取之后再解析

df = pd.read_csv(r'D:\桌面快捷方式\滴滴\出租车数据\taxi_shanghai\02\{}.csv'.format(hour),
					).drop(columns='Unnamed: 0').dropna()
	df['rectime'] = pd.to_datetime(df['数据接收时间'])
	df['gpstime'] = pd.to_datetime(df['终端GPS时间'])
# 8s

推测是因为,读取文件时解析日期是边读边解析,时间是O(n),单独解析时可能采用某种空间换时间的方式把时间复杂度降低了。

  • 5
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值