我們在做頁面的資料表的時候,經常會遇到這樣的問題:要顯示乙個起始日期到乙個結束日期的時間段的所有的資料。但是,往往因為各種各樣的原因,造成資料缺失。比如:遠端的log伺服器損壞,網路突然中斷造成資料丟失,等等。
我們一般會這樣處理:對缺失的資料,進行補 0 操作。
方**:全集與子集的關係。
我們可以找到乙個全集 a,那麼我們要修補的資料,就應該是該全集a的乙個子集b。該子集b的元素數量<=全集a的元素數量。我們需要對全集a進行迴圈,並判斷該子集b中是否存在該元素,當不存在的時候,進行資料修復,補0操作。
起始日期:2011-01-01,結束日期:2011-02-28。中間缺失資料的日期:2011-01-17,2011-02-01等等。
這樣,我們就有乙個全集:2011-01-01到2011-02-28的時間列表,便是全集。那麼
2011-01-01到2011-02-28的時間段並缺失了資料的列表,便是子集。
public static void testrepaircollection()
system.out.println("***********************************===size:"
+ baddatas.size());
mapcorrectdatamap = new linkedhashmap();
// 這裡根據全集的dates,進行資料修復
for (string date : dates)
system.out.println("***********************************===size:"
+ correctdatamap.size());
// 列印出修復之後的資料的結果
for (map.entryentry : correctdatamap.entryset())
} private static mapcreatebaddatas(collectiondates)
} return map;
} /**
* @param startdate
* pattern:yyyy-mm-dd
* @param enddate
* pattern:yyyy-mm-dd
* @return 兩個日期之間的日期列表,包含「起始日期和結束日期」
*/public static collectiongetdatelist(string startdate,
string enddate)
/*** @param startdate
* 起始日期
* @param enddate
* 結束日期
* @param pattern
* 格式化日期的表示式:如 yyyy-mm-dd
* @return 兩個日期之間的日期列表,包含「起始日期和結束日期」
*/public static collectiongetdatelist(string startdate,
string enddate, string pattern)
calendar c1 = calendar.getinstance();
c1.settime(start);
while (c1.gettime().gettime() <= end.gettime())
} catch (parseexception e)
return list;
}
Pandas 缺失資料
一.處理缺失資料 二.濾除缺失資料 三.填充缺失資料 方法說明 dropna根據各標籤的值中是否存在缺失資料對軸標籤進行過濾,可通過閾值調節對缺失值的容忍度 fillna用指定值或插值方法 如 ffill 或 bfill 填充缺失資料 isnull返回乙個含有布林值的物件,這些布林值表示哪些值時預設...
Pandas缺失資料
一 缺失值的統計和刪除 缺失資訊的統計 資料處理中經常需要根據缺失值的大小 比例或其他特徵來進行行樣本或列特徵的刪除,pandas中提供了dropna函式來進行操作。dropna的主要引數為軸方向axis 預設為0,即刪除行 刪除方式how 刪除的非缺失值個數閾值thresh 非 缺 失 值 col...
pandas 缺失資料
檢視缺失的比例 全部缺失 df sub set.isna any 1 head 至少有乙個缺失 沒有缺失 資料處理中經常需要根據缺失值的大小 比例或其他特徵來進行行樣本或列特徵的刪除,pandas中提供了dropna函式來進行操作。dropna的主要引數為軸方向axis 預設為0,即刪除行 刪除方式...