2015-03-30 112 views
1

我有以下數據框並希望填寫缺失值。在熊貓數據框中填寫缺失的行值

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 == 425897的sandtotal_r和silttotal_r的平均值。大熊貓似乎沒有辦法。任何幫助?

回答

3

使用我剛纔瞭解到下面....

FYI一對夫婦的問題,這個解決方案仍然會留下NaN的任何「Mukey的沒有任何」 sandtotal_r的或「silttotal_r的。

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 
+0

太謝謝你了利亞姆,任何機會,你可以看看爲什麼代碼在更大的數據集失敗:http://stackoverflow.com/questions/29359134/pandas-fillna-failing-on-dataset – user308827 2015-03-31 01:33:15