一开始想的很简单,直接用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.datetime(2011, 7, 14, 0, 0)2. datetime转为date类型,使用datetime的date():
>>> d1 = dt.date() >>> d1 #datetime.date(2011, 7, 14)