gpt4 book ai didi

Python-pandas 将 NA 替换为数据框中一组的中位数或均值

转载 作者:太空狗 更新时间:2023-10-29 21:34:00 26 4
gpt4 key购买 nike

假设我们有一个 df:

    A       B
apple 1.0
apple 2.0
apple NA
orange NA
orange 7.0
melon 14.0
melon NA
melon 15.0
melon 16.0

要替换 NA,我们可以使用 df["B"].fillna(df["B"].median()),但它会用所有数据的中位数填充 NA在“B”中

有什么办法可以用某个A的中位数来代替NA(如下图):

    A       B
apple 1.0
apple 2.0
apple **1.5**
orange **7.0**
orange 7.0
melon 14.0
melon **15.0**
melon 15.0
melon 16.0

谢谢!

最佳答案

在 pandas 中你可以使用 transform获取空填充值:

>>> med = df.groupby('A')['B'].transform('median')
>>> df['B'].fillna(med)
0 1.0
1 2.0
2 1.5
3 7.0
4 7.0
5 14.0
6 15.0
7 15.0
8 16.0
Name: B, dtype: float64

关于Python-pandas 将 NA 替换为数据框中一组的中位数或均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33573408/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com