fillna関数の基本的な使い方
Pandasのfillna()
関数は、データフレーム内の欠損値(NaN)を補完するための関数です。以下に基本的な使い方を示します。
まず、欠損値を含むデータフレームを作成します。
import pandas as pd
import numpy as np
df = pd.DataFrame({
'A': [1, 2, np.nan],
'B': [5, np.nan, np.nan],
'C': [1, 2, 3]
})
このデータフレームでは、’A’列の3行目と’B’列の2行目と3行目に欠損値が存在します。
fillna()
関数を使ってこれらの欠損値を特定の値で補完することができます。例えば、0で補完する場合は以下のようにします。
df.fillna(0)
このコードを実行すると、元のデータフレームの欠損値が全て0で補完された新しいデータフレームが生成されます。
以上が、Pandasのfillna()
関数の基本的な使い方です。この関数を使うことで、データ分析時に欠損値を適切に処理することが可能となります。
fillnaで前後の値を使った穴埋め
Pandasのfillna()
関数は、前後の値を使って欠損値を補完することも可能です。これは時系列データなど、データ間の順序が重要な場合に特に有用です。
前の値(前方補間、または ‘forward fill’)を使って欠損値を補完するには、method
パラメータに'ffill'
を指定します。
df.fillna(method='ffill')
一方、後の値(後方補間、または ‘backward fill’)を使って欠損値を補完するには、method
パラメータに'bfill'
を指定します。
df.fillna(method='bfill')
ただし、これらの方法では最初や最後の欠損値は補完できません。なぜなら、それらの欠損値の前後に値が存在しないからです。そのような場合は、別の値(例えば0)で補完するか、欠損値を含む行や列を削除する等の処理が必要となります。
以上が、Pandasのfillna()
関数を使った前後の値による穴埋めの方法です。この機能を使うことで、データの特性に合わせた柔軟な欠損値の補完が可能となります。次に、特定の列の欠損値を補完する方法について説明します。お楽しみに!
fillnaで特定の列の欠損値を補完
Pandasのfillna()
関数は、特定の列の欠損値だけを補完することも可能です。これは、各列が異なる特性を持つデータセットを扱う際に特に有用です。
例えば、以下のようなデータフレームを考えてみましょう。
df = pd.DataFrame({
'A': [1, 2, np.nan],
'B': [5, np.nan, np.nan],
'C': [1, 2, 3]
})
このデータフレームでは、’A’列と’B’列に欠損値が存在します。’A’列の欠損値を0で、’B’列の欠損値を平均値で補完したいとします。その場合、以下のようにfillna()
関数を使います。
df['A'] = df['A'].fillna(0)
df['B'] = df['B'].fillna(df['B'].mean())
このコードを実行すると、’A’列の欠損値は0で、’B’列の欠損値は’B’列の非欠損値の平均で補完されます。
以上が、Pandasのfillna()
関数を使った特定の列の欠損値の補完方法です。この機能を使うことで、列ごとに異なる補完戦略を適用することが可能となります。次に、fillna()
関数の応用例について説明します。お楽しみに!
fillnaの応用例
Pandasのfillna()
関数は、その柔軟性から様々な応用例があります。ここでは、カテゴリ変数の欠損値を最頻値で補完する例を紹介します。
例えば、以下のようなデータフレームを考えてみましょう。
df = pd.DataFrame({
'A': ['dog', 'cat', np.nan, 'dog', 'bird', 'cat', 'bird', 'bird']
})
このデータフレームでは、’A’列に欠損値が存在します。この欠損値を’A’列の最頻値で補完したいとします。その場合、以下のようにfillna()
関数を使います。
df['A'] = df['A'].fillna(df['A'].mode()[0])
このコードを実行すると、’A’列の欠損値は’A’列の最頻値で補完されます。
以上が、Pandasのfillna()
関数の一つの応用例です。このように、fillna()
関数はデータの特性や分析の目的に応じて、様々な方法で欠損値の補完を行うことが可能です。データ分析において、欠損値の適切な取り扱いは重要なステップの一つであり、fillna()
関数はそのための強力なツールとなります。この記事が皆さんのデータ分析の一助となれば幸いです。それでは、Happy Data Analyzing! <( ̄︶ ̄)>