在pandas数据帧中填写缺少的行值

时间:2015-03-30 22:58:15

标签: python pandas

我有以下数据框,并希望填写缺失值。

mukey   hzdept_r    hzdepb_r    sandtotal_r silttotal_r
425897      0         61        
425897      61        152          5.3         44.7
425911      0         30           30.1        54.9
425911      30        74           17.7        49.8
425911      74        84        

我希望每个缺失值都是与该mukey对应的值的平均值。在这种情况下,例如第一行缺失值将是对应于mukey的sandtotal_r和silttotal_r的平均值== 425897。 pandas fillna似乎没有做到这一点。有什么帮助吗?

1 个答案:

答案 0 :(得分:3)

使用我刚刚学到的几个问题......

仅供参考,这个解决方案仍然会留给没有任何' sandtotal_r或' silttotal_r&#的Mukey的NaN&# 39; S

import pandas as pd

df = pd.read_clipboard()

df1 = df.set_index('mukey')

df1.fillna(df.groupby('mukey').mean(),inplace=True)

df1.reset_index()

    mukey  hzdept_r  hzdepb_r  sandtotal_r  silttotal_r
0  425897         0        61          5.3        44.70
1  425897        61       152          5.3        44.70
2  425911         0        30         30.1        54.90
3  425911        30        74         17.7        49.80
4  425911        74        84         23.9        52.35