如何用熊猫的分组平均值替换列的空值?

时间:2020-03-06 17:51:11

标签: python python-3.x pandas numpy

我正在清理数据集,并希望将所有空销售价格替换为该特定邮政编码的平均平均值。

import pandas as pd
df = pd.DataFrame(data=[['ABC', np.nan],['EFG', 10000], ['ABC', 15000], 
                        ['EFG', 20000], ['ABC', 17000]],
                  columns=['ZIP CODE', 'SALESPRICE'])

#   ZIP CODE  SALESPRICE
# 0      ABC         NaN
# 1      EFG     10000.0
# 2      ABC     15000.0
# 3      EFG     20000.0
# 4      ABC     17000.0

我相信首先我需要将所有邮政编码及其平均平均价格分组在一起

例如 Imgur

,然后将与特定邮政编码对应的任何空SALESPRICE值替换为其平均值

例如

Imgur

如果有人可以帮助我,因为我似乎找不到任何解决方法

2 个答案:

答案 0 :(得分:3)

使用groupby.transformfillna

React.useCallback

答案 1 :(得分:2)

这是使用Apply解决问题的一种方法:

df['SALESPRICE'] = df.apply(lambda x: 
                            x['SALESPRICE'] if pd.notna(x['SALESPRICE']) 
                            else df['SALESPRICE'].loc[df['ZIP CODE']==x['ZIP CODE']].mean(),
                            axis=1
                           )