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

这应该很简单,但是我发现的最接近的内容是这篇文章: 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()

回答:

一种方法是使用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:每组均值填充缺失值 的全部内容, 来源链接: utcz.com/qa/435960.html

回到顶部