データ解析は、私たちの日常生活の中で重要な位置を占めるようになりました。
私たちは毎日、さまざまな領域のさまざまな種類のデータを扱っています。
データ分析における大きな課題の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 d0 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 d0 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 値を埋めるためのさまざまな方法を学びました。
これらのメソッドは、データ分析プロジェクトで重宝することでしょう。