2017-02-23 16 views
0

假設我有一個以下數據幀:熊貓:填入由模式具有「索引超出範圍」的錯誤缺失值

Sample=pd.DataFrame({'Gender':['Male','Male','Male','Male','Female','Female','Male','Male'], 
      'Married':['No','Yes','Yes','Yes','No','No','Yes','Yes'], 
      'Dependents':['1','1','1','0','3+','3+','1','1'], 
      'Education':['Not Graduate','Graduate','Graduate','Graduate','Not Graduate','Not Graduate','Graduate','Graduate'], 
      'ApplicantIncome':[3596,3717,4166,2400,3333,6000,1234,4567], 
      'Credit_History':['1',np.nan,'0','1',np.nan,'1',np.nan,'0']}) 

    ApplicantIncome Credit_History Dependents Education  Gender Married 
0  3596     1    1   Not Graduate Male No 
1  3717    NaN    1   Graduate  Male Yes 
2  4166     0    1   Graduate  Male Yes 
3  2400     1    0   Graduate  Male Yes 
4  3333    NaN    3+  Not Graduate Female No 
5  6000     1    3+  Not Graduate Female No 
6  1234    NaN    1   Graduate  Male Yes 
7  4567     0    1   Graduate  Male Yes 

我想在的NaN在[「性別」,以填補模式值,「已婚」,「受撫養人」,「教育」]組。

我寫了下面的代碼:

Sample['Credit_History']=Sample.groupby(['Gender','Married','Dependents','Education']).transform(lambda x: 
        x.fillna(x.mode()[0]))['Credit_History'] 

錯誤信息有關越界彈出:

IndexError: ('index out of bounds', 'occurred at index ApplicantIncome') 

有關如何解決上面我的代碼的任何想法?謝謝!

回答

0

你可以使用一個簡單的代碼來實現你想要的。 df["credithistory"].fillna(df["credithistory"].mode())

不要忘記導入numpy。

+1

numpy沒有模式屬性,我想 –

+0

反而增加了系列的模式方法。 – nitinvijay23