ホームページ >バックエンド開発 >Python チュートリアル >「transform」を使用して欠落しているデータフレーム値をグループ平均で埋める方法は?

「transform」を使用して欠落しているデータフレーム値をグループ平均で埋める方法は?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-27 07:26:13127ブラウズ

How to Fill Missing DataFrame Values with Group Means Using `transform`?

Transform を使用して欠損値をグループ平均で埋める

欠損値のある DataFrame では、意味のある値で埋めるのが一般的です。 1 つのアプローチは、各グループの平均値を計算することです。

次の 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']
})

目標は、すべての "NaN" 値をそれぞれの " 内の平均値で埋めることです。

これを実現するには、transform 関数を groupby 操作と組み合わせて使用​​します。変換関数は指定された変換を各グループに適用しますが、groupby 操作は特定の列 (この場合は「名前」) に基づいて DataFrame をグループに分割します。

解決策は次のとおりです:

grouped = df.groupby("name").mean()
df["value"] = df.groupby("name").transform(lambda x: x.fillna(x.mean()))

fillna 関数は、欠損値を指定された値 (この場合は平均値) で埋めます。ラムダ関数は、埋める前に各グループの平均が計算されることを保証します。

結果の DataFrame には、欠損値が各グループの平均値で埋められます。

  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

以上が「transform」を使用して欠落しているデータフレーム値をグループ平均で埋める方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。