データ処理 - 欠損値

データ処理 - 欠損値

データ分析に大きな影響を持っているなど、不足しているとの情報フィールドを欠落しているケースレコードを含むデータを、欠落、結果はより重要な不確実性につながります

欠損値の処理:削除記録/データ補間/無治療を

1、削除を記録

行方不明の値かどうかを判断するデータ- ISNULL、にnotnull

ISNULL:欠損値がTrueで、非欠損値はFalseです

NOTNULL:欠損値がFalseで、非欠損値はTrueです

AS NP numpyのインポート
インポートPANDAS AS PD
インポートASのPLTをmatplotlib.pyplot
scipyのダウンロードインポート統計から
%matplotlibのインラインS = pd.Series([12,33,45,23、np.nan、np.nan、66,54、NP .nan、99])DF = pd.DataFrame({ 'VALUE1':[12,33,45,23、np.nan、np.nan、66,54、np.nan、99190]、                '値2':[ 'A'、 'B'、 'C'、 'D'、 'E'、np.nan、np.nan、 'F'、 'G'、np.nan、 'G']})#は、データの作成印刷(s.isnull())#シリーズ直接欠損値かどうかを判断するには、シリーズ返し印刷(df.notnullを())#データフレームは、直接、欠損値かどうかを決定シリーズ返し印刷(DF [「VALUE1を」]。 notnull())#インデックスはによって決定されるプリント( '------')S2 = S [s.isnull()== FALSE]   DF2 = DF [DF [ '値2']。差分にnotnull()]#注意およびDF2 = DF [DF [ '値2']。NOTNULL()] [ '値1']の














印刷(S2)
を印刷(DF2) スクリーニング値を非行方不明

 

 

 

削除欠損値 - dropna

pd.Series = S([12,33,45,23、np.nan、np.nan、66,54、np.nan、99])
DF = pd.DataFrame({ 'VALUE1':[12、33、 45,23、np.nan、np.nan、66,54、np.nan、99190]、
                '値2':[ 'A'、 'B'、 'C'、 'D'、 'E'、NP。 NaN 3を、np.nan、 'F'、 'G'、np.nan、 'G']}) 作成データs.dropna(インプレース= TRUE)DF2 DF = [ 'VALUE1']。dropna()印刷(S)を印刷(DF2)ドロップ法:データフレーム、シリーズを直接使用することができます#のインプレースは、パラメータを指摘し、新しいデフォルト値はFalseを生成→










、fillnaを交換 - 充填/失われたデータを交換します

pd.Series = S([12,33,45,23、np.nan、np.nan、66,54、np.nan、99])
DF = pd.DataFrame({ 'VALUE1':[12、33、 45,23、np.nan、np.nan、66,54、np.nan、99190]、
                '値2':[ 'A'、 'B'、 'C'、 'D'、 'E'、NP。 NaN 3を、np.nan、 'F'、 'G'、np.nan、 'G']}) データ作成s.fillna(0、インプレース= TRUE)プリント(S)印刷(「---- - 「)#s.fillna(値=なし、方法=なし、軸=なし、インプレース= Falseを、制限=なし、意気消沈=なし、** kwargsから)#値:フィル値#(注)パラメータインプレースDF [ 'VALUE1']。fillna(方法= 'パッド'、インプレース= TRUE)印刷(DF)を印刷( '------') :方法#のパラメーター・データ#パッド/ ffill→とを充填する前に





















充填後#バックフィル/ bfill→データS = pd.Seriesを([1,1,1,1,2,2,2,3,4,5、np.nan 、np.nan、66,54、 np.nan、99])s.replaceん(np.nan、 'データの欠落'、インプレース= TRUE)印刷(S)を印刷( '------')#1 df.replace(to_replace =なし、値なし=、= Falseのインプレース、限界=なし、REGEX = Falseを、メソッド= 'PAD'、軸=なし)#はto_replaceの値に置き換えられ→ #値→オーバーライドs.replace([1,2,3 ]、np.nan、インプレース= TRUE)印刷(S) 多値置換np.nan















2、欠落している補間値

いくつかのアイデア:平均数/中央値/公共補間、値補間、補間近く

(1)平均値/中央値/デジタル補間公共

S = pd.Series([1,2,3、np.nan 、3,4,5,5,5,5、np.nan、np.nan、6,6,7,12,2、np.nan 、3,4])
#Print(S)
')------'(印刷#データを作成し、U = s.mean()#意味私はs.median =()#中央値MOD = S .mode()#モード印刷( '平均値:%2F、中央値:%2F' %(U、Me)の)プリント( 'モードである:'、mod.tolist())プリント( '------') は、平均値/中央値/モードを決定したs.fillna(U、インプレース= TRUE)印刷(S) は平均でいっぱいに















 

 

(2)補間値に隣接

S = pd.Series([1,2,3、np.nan 、3,4,5,5,5,5、np.nan、np.nan、6,6,7,12,2、np.nan 、3,4])
#Print(S)
を印刷( '------') 作成したデータs.fillna(方法= 'ffill'、インプレース= TRUE)印刷(S)前の値を持つ#補間






 

 

(3)補間 - ラグランジュ多項式

 

 

インポートラグランジュscipy.interpolateから
X = [3 ,. 6 ,. 9]
Y = [10 ,. 8 ,. 4]
プリント(ラグランジュ(X、Y))
タイプ(ラグランジュ(X、Y)))印刷#の出力値多項式のN個の係数出力値A0、A1、A2である#3 #Y = A0 + A1 * X ** 2 + X *→Y = A2 * X ** 2 + -0.11111111 * X + 10 0.33333333 プリント(補間の'10:%2F」ラグランジュ%(X、Y)(10))プリント( '------')#+ 0.33333333 -0.11111111×100 + 10 * = 3.33333333 + 10 + 10 = 2.22222222 -11.11111111










(3)補間 - ラグランジュ補間、実用化

= pd.Seriesデータ(np.random.rand(100)* 100)
DATA [3,6,33,56,45,66,67,80,90] = np.nan
印刷(data.head())
印刷( '総データ量:I%' %LEN(データ))
印刷( '------') データ作成data_na =データ[data.isnull()] (「欠失量値データを印刷:% '私は、%LEN(data_na))((LEN(data_na)data.:%の欠落を占める印刷「)/ LEN(データ)×100%2F %%') の値行方不明の#(DATA_C = data.fillnaを中央値の欠損値でdata.median())#フィル図、= plt.subplots軸(1,4、figsize =(20、5))data.plot.box(軸AX = [0] = Trueのグリッドタイトル= 'データプロファイル')data.plot(種類= 'KDE'、スタイル= '-R'、軸AX = [1]、= Trueのグリッド、タイトル= '削除欠損値'、XLIM = [-50150] )













data_c.plot(種類= 'KDE'、スタイル= '-B-'、AX =軸[2]、グリッド= trueの場合、タイトル= ' スタッフィングの値ビットを欠落'、XLIM = [-50150]) 密度参照図欠落値またはDEF na_c(S、N - 、K = 5):  Y = Sは、[一覧(レンジ(NK、N-K + + 1))]#フェッチ  yとyは= [y.notnull()] # ヌル除く  リターン(ラグランジュ(y.index、リスト(Y))(N)) 作成機能、補間、データ理由の量が、5つのデータにNULL値の前後(10個のデータの合計)補間例= na_re [] のためのIレンジ内(LEN(データ))  IF data.isnull()[I]:      データ[I] = na_c(データ、I)      プリント(na_c(データ、I))      na_re.append(データ[I])data.dropna(インプレース= TRUE)#クリア値にまだ存在行方不明補間、data.plot(種類= 'KDE'をスタイル= '--k'、AX =軸[3]、グリッド=真タイトル= 'ラグランジュ補間後'、XLIM = [-50150])を印刷( '完成!')




















#欠損値の補間

 

 

 

 

 

 

おすすめ

転載: www.cnblogs.com/Lilwhat/p/12446883.html