pandas 用团体价值填补北美 [英] Pandas Fill NA with Group Value

查看:43
本文介绍了 pandas 用团体价值填补北美的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

给出以下数据框:

import pandas as pd
import numpy as np
df = pd.DataFrame({'Site':['A','A','A','B','B','B','C','C','C'],
                   'Value':[np.nan,1,np.nan,np.nan,2,2,3,np.nan,3]})

df

    Site    Value
0   A       NaN
1   A       1.0
2   A       NaN
3   B       NaN
4   B       2.0
5   B       2.0
6   C       3.0
7   C       NaN
8   C       3.0

我想用该网站最常见的(中位数或均值)值来填充NaN值.理想的结果是:

I'd like to fill the NaN values with the most common (median or mean will do) value for the site. The desired result is:

    Site    Value
0   A       1.0
1   A       1.0
2   A       1.0
3   B       2.0
4   B       2.0
5   B       2.0
6   C       3.0
7   C       3.0
8   C       3.0

提前谢谢!

更新:这很近,但是没有雪茄:

Update: This is close, but no cigar:

df['Value']=df.groupby(['Site'])['Value'].fillna(min)

导致...

    Site    Value
0   A   <function amax at 0x108cf9048>
1   A   1
2   A   <function amax at 0x108cf9048>
3   B   <function amax at 0x108cf9048>
4   B   2
5   B   2
6   C   3
7   C   <function amax at 0x108cf9048>
8   C   3

推荐答案

您可以使用transform作为 查看全文

登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆