Python-pandas:每组均值填充缺失值

发布于 2021-02-02 23:17:33

这应该很简单,但是我发现的最接近的内容是这篇文章: pandas:填充组中的缺失值,但我仍然无法解决我的问题。

假设我有以下数据框

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

  name  value
0    A      1
1    A    NaN
2    B    NaN
3    B      2
4    B      3
5    B      1
6    C      3
7    C    NaN
8    C      3

我想在每个“名称”组中用平均值填写“ NaN”,即

      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

我不确定要去哪里:

grouped = df.groupby('name').mean()
关注者
0
被浏览
125
1 个回答
  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。

    一种方法是使用transform

    >>> df
      name  value
    0    A      1
    1    A    NaN
    2    B    NaN
    3    B      2
    4    B      3
    5    B      1
    6    C      3
    7    C    NaN
    8    C      3
    >>> df["value"] = df.groupby("name").transform(lambda x: x.fillna(x.mean()))
    >>> df
      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
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看