遇到的問題:
乙個資料表的兩列,原始資料為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')
pandas處理時間和日期型別資料
匯入乙個時間相關的資料集 import numpy as np import pandas as pd importing a dataset url data pd.read csv url,header none 檢視資料的屬性 data.head 3 01230 707 24 05 00 00...
pandas 時間處理
year month day 是 datetime 標準形式 可以用 datetime.dt.day 取到 day 如果是 datetime 相減,得到兩個時間差的天數,型別變為 timedelta 要用 dt.days 獲取天數 如果是一串數字表達的時間 沒有分隔符 可以用to datetime ...
pandas處理日期缺失
兩種方法實現 1 dataframe.reindex 調整dataframe的索引以適應新的索引 2 dataframe.resample,可以對時間序列重新取樣,支援補充缺失值 import pandas as pd import os matplotlib inlinedf pd.datafra...