ホームページ >バックエンド開発 >Python チュートリアル >「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 サイトの他の関連記事を参照してください。