データ解析は、私たちの日常生活の中で重要な位置を占めるようになりました。
私たちは毎日、さまざまな領域のさまざまな種類のデータを扱っています。
データ分析における大きな課題の1つは、データ中の欠損値または(NA)の存在です。
この記事では、fillna()メソッドを使って、データセットの欠損値を処理する方法を学びます。
さっそく始めてみましょう。
Pandas fillna() メソッドとは何か、なぜ有用か?
PandasのFillna()は、データセットの欠損値やNA値を埋めるために使用されるメソッドです。
ゼロのように欠損値を埋めることも、値を入力することもできます。
このメソッドは通常、CSVやExcelファイルを扱うときに便利です。
欠損値を除去する dropna() メソッドと混同しないようにしましょう。
この場合、欠損値をゼロに置き換えるか、ユーザーからの入力値で置き換えます。
fillna()関数の構文を見てみましょう。
DataFrame.fillna(value = None , method = None , axis = None , inplace = False , limit = None , downcast = None , * * kwargs)
|
以下の例で、さまざまなシナリオでfillna()メソッドを使用できることを確認しましょう。
Pandas DataFrame fillna() メソッド
次の例では、NAN 値の場所をゼロで埋めます。
import pandas as pd
import numpy as np
df = pd.DataFrame([[np.nan, 300 , np.nan, 330 ],
[ 589 , 700 , np.nan, 103 ],
[np.nan, np.nan, np.nan, 675 ],
[np.nan, 3 ]],
columns = list ( 'abcd' ))
print (df)
#Filling the NaN values with zeros. print ( " )
print (df.fillna( 0 ))
|
結果は以下の通りです。
a b c d
0 NaN 300.0 NaN 330.0
1 589.0 700.0 NaN 103.0
2 NaN NaN NaN 675.0
3 NaN 3.0 NaN NaN
a b c d
0 0.0 300.0 0.0 330.0
1 589.0 700.0 0.0 103.0
2 0.0 0.0 0.0 675.0
3 0.0 3.0 0.0 0.0
|
fillna() メソッドを1つの列だけに適用する
df = pd.DataFrame([[np.nan, 300 , np.nan, 330 ],
[ 589 , 700 , np.nan, 103 ],
[np.nan, np.nan, np.nan, 675 ],
[np.nan, 3 ]],
columns = list ( 'abcd' ))
print (df)
#Filling the NaN value print ( " )
newDF = df[ 'b' ].fillna( 0 )
print (newDF)
|
結果は以下の通りです。
a b c d 0 NaN 300.0 NaN 330.0
1 589.0 700.0 NaN 103.0
2 NaN NaN NaN 675.0
3 NaN 3.0 NaN NaN
0 300.0
1 700.0
2 0.0
3 3.0
Name: b, dtype: float64 |
limitメソッドを使って、NAN値を埋めたい行を指定することもできます。
import pandas as pd
import numpy as np
df = pd.DataFrame([[np.nan, 300 , np.nan, 330 ],
[ 589 , 700 , np.nan, 103 ],
[np.nan, np.nan, np.nan, 675 ],
[np.nan, 3 ]],
columns = list ( 'abcd' ))
print (df)
# Filing the NaN value print ( " )
print (df.fillna( 0 , limit = 2 ))
|
結果は以下の通りです。
出力
a b c d 0 NaN 300.0 NaN 330.0
1 589.0 700.0 NaN 103.0
2 NaN NaN NaN 675.0
3 NaN 3.0 NaN NaN
a b c d
0 0.0 300.0 0.0 330.0
1 589.0 700.0 0.0 103.0
2 0.0 0.0 NaN 675.0
3 NaN 3.0 NaN 0.0
|
上記の方法では、limit=2 を適用しているので、最初の2行だけ NAN 値を置き換えていることになります。
まとめ
まとめると、DataFrame に NAN 値を埋めるためのさまざまな方法を学びました。
これらのメソッドは、データ分析プロジェクトで重宝することでしょう。