两个不是日期类型的数据的差值
遇到的问题:
一个数据表的两列,原始数据为float64,如20150101.0
需要求两个日期的差值,判断是否超过多少天(9)
一些基本的知识:
查看Date列有多少行的缺失值
off_train['Date'].isnull().sum()
选择任意行出现空值的数据
off_train[off_train.T.isnull().any()]
判断这一列所有行是否是空值
off_train['Coupon_id'].isnull().values
解决方法:
由于是要计算差值所以两者均不能为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()方法去除小数点转换为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))计算差值,并判断
Date_diff=Date_temp-Received_temp
result_diff=np.where(Date_diff<=pd.Timedelta(days=9),'1','0')