python - Pandas :在每组中平均填充缺失值

标签 python pandas pandas-groupby imputation fillna

这应该很简单,但我发现最接近的是这篇文章: pandas: Filling missing values within a group ,我还是解决不了我的问题....

假设我有以下数据框

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()

非常感谢。

最佳答案

一种方法是使用 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

关于python - Pandas :在每组中平均填充缺失值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19966018/

相关文章:

python - 使 python 模块可用作 cli 工具的最简单方法

python-3.x - 使用 Pandas 数据框识别重复组

python - 使用 pandas GroupBy 获取每个组的统计信息(例如计数、平均值等)?

python - 如何根据列名创建多级索引?

python - Pandas 无法打开 Excel (.xlsx) 文件

python - DataFrame float 到整数?

python - Pandas groupby() 比较并计算两列

python - 如何使用 python 将 .txt 文件转换为 xml 文件?

python - 如何防止短路评估?

python - 如何在包导入时调试 "can not import"错误