缺失資料的修復

2021-09-01 21:05:59 字數 1790 閱讀 5686

我們在做頁面的資料表的時候,經常會遇到這樣的問題:要顯示乙個起始日期到乙個結束日期的時間段的所有的資料。但是,往往因為各種各樣的原因,造成資料缺失。比如:遠端的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,即刪除行 刪除方式...