在 Python 中有一个这样的数据框:
x1 x2 x3
a 1 1000
a 1 2390
a 1 ?
b 2 120
b 2 2000
所以我的目标是填写 x3 列中的所有缺失值。但是,如果我使用标准方法 (pd.fillna(df.mean()),我不会得到理想的结果。我希望能够以某种方式不对 x3 列进行简单的 mean(),而对所有 x3 仅进行 mean() x1=a 和 x2=1 的值。如何在 Python Pandas 中完成?
最佳答案
您可以使用 groupby.transform()
按组填充缺失值:
df['x3'] = df.groupby(["x1", "x2"])['x3'].transform(lambda x: x.fillna(x.mean()))
关于python - 使用 Pandas 中的方法和逻辑分组来填充缺失值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41625489/