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')

你可能感兴趣的:(机器学习)