ホームページ > バックエンド開発 > Python チュートリアル > パンダの欠損値をグループ平均で埋めるにはどうすればよいですか?

パンダの欠損値をグループ平均で埋めるにはどうすればよいですか?

Linda Hamilton
リリース: 2024-12-11 12:58:11
オリジナル
518 人が閲覧しました

How to Fill Missing Values in Pandas with the Group Mean?

Pandas の各グループの平均値によって欠損値を埋める

このコンテキストでの目的は、欠損値 (「NaN」) を埋めることです。 ) 「名前」列内の個別のグループごとの平均値。これを実現するには、Pandas の変換関数を fillna メソッドと組み合わせて利用できます。

提供されている 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']
})

# Original DataFrame
print(df)
ログイン後にコピー

各「名前」内の平均値を計算するにはグループ化する場合は、groupby 関数を使用できます:

grouped = df.groupby('name').mean()
ログイン後にコピー

ただし、グループ化されるのは平均値を含む DataFrame であり、次の必要があります。それを元の DataFrame に適用し直し、欠落している値を埋めます。ここで、transform が役立ちます。

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

コードの内訳は次のとおりです。

  • df.groupby("name") DataFrame を "name" 列でグループ化します。
  • lambda x: x.fillna(x.mean()) は、各グループを取る匿名関数を定義します(x で表されます) を入力として使用し、次の操作を実行します:

    • x.mean() を使用して計算された平均値で欠損値 (「NaN」) を埋めます。
  • df["value"] は、元の DataFrame の "value" 列を、欠落している値を埋める変換された値で置き換えます。 value.

コードを実行すると、結果の DataFrame には必要に応じて入力された値が含まれます:

# Adjusted DataFrame
print(df)
ログイン後にコピー

以上がパンダの欠損値をグループ平均で埋めるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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