已知一个datetime,筛选其前七天的数据

问题一开始想的很简单,直接用timedelta求7天的时间差,然后原始数据减去时间差,然后只需大于data_pre_seven,小于a即可,如下:a = pd.to_datetime('20120701 11:22:33')sevenday = datetime.timedelta(days=7)date_pre_seven = a - sevendaypre_seven_day = id_data[(id_data['日期时间'] > date_pre_seven) & (i
摘要由CSDN通过智能技术生成

问题

一开始想的很简单,直接用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
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值