1. 程式人生 > >pandas處理日期時間

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