Pandas fillna() メソッド – 完全ガイド

スポンサーリンク

データ解析は、私たちの日常生活の中で重要な位置を占めるようになりました。

私たちは毎日、さまざまな領域のさまざまな種類のデータを扱っています。

データ分析における大きな課題の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 値を埋めるためのさまざまな方法を学びました。

これらのメソッドは、データ分析プロジェクトで重宝することでしょう。

タイトルとURLをコピーしました