pandas处理日期时间

两个不是日期类型的数据的差值

遇到的问题:
一个数据表的两列,原始数据为float64,如20150101.0

需要求两个日期的差值,判断是否超过多少天(9)

一些基本的知识:
查看Date列有多少行的缺失值
off_train['Date'].isnull().sum()
选择任意行出现空值的数据
off_train[off_train.T.isnull().any()]
判断这一列所有行是否是空值
off_train['Coupon_id'].isnull().values

解决方法:

  1. 由于是要计算差值所以两者均不能为null。

    Date_temp=off_train[off_train['Date'].notnull()]['Date']
    Received_temp=off_train[off_train['Date_received'].notnull()&off_train['Date'].notnull()]['Date_received']

    也就是过滤一下数据,使用逻辑与过滤掉多列
    过滤数据还经常使用到的方法是:isin()方法

  2. 去除小数点转换为str
    Date_temp=Date_temp.astype(int)
    Received_temp=Received_temp.astype(int)
    Date_temp=pd.to_datetime(Date_temp.astype(str))
    Received_temp=pd.to_datetime(Received_temp.astype(str))

  3. 计算差值,并判断
    Date_diff=Date_temp-Received_temp
    result_diff=np.where(Date_diff<=pd.Timedelta(days=9),'1','0')

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值