问题
一开始想的很简单,直接用timedelta求7天的时间差,然后原始数据减去时间差,然后只需大于data_pre_seven,小于a即可,如下:
a = pd.to_datetime('20120701 11:22:33')
sevenday = datetime.timedelta(days=7)
date_pre_seven = a - sevenday
pre_seven_day = id_data[(id_data['日期时间'] > date_pre_seven) & (id_data['日期时间'] < a)
但是后来发现,这求出来的好像不是我想要的,按上述方法求取的是20120624 11:22:33到20120701 11:22:33的数据,而我想要的是20120624 00:00:00到20120630 00:00:00的数据.
后来就想能不能把datetime的日期保留,但是时间也就是时分秒变为0,这样不就是想要的了嘛.于是去找了下datatime怎么转换成date,然后在加上时分秒皆为0的数据.
转自:https://www.cnblogs.com/lvxiuquan/archive/2012/07/19/2599174.html
1.date转为datetime类型,使用datetime的combine():
>>> from datetime import datetime,date,time
>>> d = date(2011,7,14)
>>> dt = datetime.combine(d,time())
>>> dt #datetime.datet