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()))
コードの内訳は次のとおりです。
lambda x: x.fillna(x.mean()) は、各グループを取る匿名関数を定義します(x で表されます) を入力として使用し、次の操作を実行します:
コードを実行すると、結果の DataFrame には必要に応じて入力された値が含まれます:
# Adjusted DataFrame print(df)
以上がパンダの欠損値をグループ平均で埋めるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。