ホームページ > バックエンド開発 > Python チュートリアル > グループ平均を使用してパンダの欠損値を代入する方法?

グループ平均を使用してパンダの欠損値を代入する方法?

Susan Sarandon
リリース: 2024-12-05 16:29:10
オリジナル
607 人が閲覧しました

How to Impute Missing Values in Pandas Using Group Means?

Pandas でのグループ平均による NaN 代入

各グループ内の平均を使用して欠損値を埋めることは、表形式データを操作する場合の一般的なタスクです。欠損値を含む次の DataFrame を考えてみましょう:

df = pd.DataFrame({'value': [1, np.nan, np.nan, 2, 3, 1, 3, np.nan, 3],
                   'name': ['A', 'A', 'B', 'B', 'B', 'B', 'C', 'C', 'C']})
ログイン後にコピー

私たちの目標は、欠損値を「name」列に基づいて各グループの平均値で代入することです。

これを達成するには、次のようにします。 Pandas では、groupby() 関数とtransform() 関数を利用できます。

grouped = df.groupby('name').mean()
df["value"] = df.groupby("name").transform(lambda x: x.fillna(x.mean()))
ログイン後にコピー

groupby() 関数は、 「name」列、mean() は各グループの平均値を計算します。 transform() 関数は、この平均値を各グループ内の各行に適用し、欠損値を埋めます。

結果のデータフレーム:

print(df)

  name  value
0    A      1
1    A      1
2    B      2
3    B      2
4    B      3
5    B      1
6    C      3
7    C      3
8    C      3
ログイン後にコピー

説明:

  • mean() 関数は各グループ内の平均値を計算し、グループ化された新しい DataFrame を生成します。
  • transform() 関数は、平均値を塗りつぶし値として使用して、fillna() メソッドを各グループに適用します。これにより、欠損値に各グループに固有の平均値が設定されます。

代替解決策:

グループベースの欠損値補完の別のアプローチは次のとおりです。

impute_cols = ['value']
df[impute_cols] = df[impute_cols].fillna(df.groupby('name')[impute_cols].transform('mean'))
ログイン後にコピー

どちらの方法でも同じ結果が得られますが、後者のアプローチの方が、複数の値を代入する場合に柔軟性が高くなります。列。

以上がグループ平均を使用してパンダの欠損値を代入する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート