按 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)
计算每个“名称”内的平均值group,你可以使用groupby函数:
grouped = df.groupby('name').mean()
但是,grouped是一个包含平均值的DataFrame,我们需要将其应用回原始 DataFrame 以填充缺失值。这就是转换变得有用的地方:
df["value"] = df.groupby("name").transform(lambda x: x.fillna(x.mean()))
这是代码的细分:
lambda x: x.fillna(x.mean()) 定义一个匿名函数,它接受每个组(由 x 表示)作为输入并执行以下操作:
执行代码后,生成的 DataFrame 将包含所需的填充值:
# Adjusted DataFrame print(df)
以上是如何用群体均值填充 Pandas 中的缺失值?的详细内容。更多信息请关注PHP中文网其他相关文章!