2015-11-11 13 views
8

sütunların üzerinde yineleme olmadan (sklearn) Scikit-öğrenme kullanarak tüm DataFrame (tüm sütunlar) impute ... Ben bunu düşünmek tek yolu kolon olarak sütuna gereğidir ... aşağıda gösterilen Bir pandalar DataFrame üzerindeki sütunların tümünü impute istiyorum

Ben sütunların üzerinden yineleme olmadan tüm DataFrame suçlamak olabilir bir operasyon var mı? Eğer böyle mean veya median Yapabileceğin bir şey istiyorsanız

#!/usr/bin/python 
from sklearn.preprocessing import Imputer 
import numpy as np 
import pandas as pd 

#Imputer 
fill_NaN = Imputer(missing_values=np.nan, strategy='mean', axis=1) 

#Model 1 
DF = pd.DataFrame([[0,1,np.nan],[2,np.nan,3],[np.nan,2,5]]) 
DF.columns = "c1.c2.c3".split(".") 
DF.index = "i1.i2.i3".split(".") 

#Impute Series 
imputed_DF = DF 
for col in DF.columns: 
    imputed_column = fill_NaN.fit_transform(DF[col]).T 
    #Fill in Series on DataFrame 
    imputed_DF[col] = imputed_column 

#DF 
#c1 c2 c3 
#i1 0 1 NaN 
#i2 2 NaN 3 
#i3 NaN 2 5 

#imputed_DF 
#c1 c2 c3 
#i1 0 1.0 4 
#i2 2 1.5 3 
#i3 1 2.0 5 

cevap

18

:

fill_NaN = Imputer(missing_values=np.nan, strategy='mean', axis=1) 
imputed_DF = pd.DataFrame(fill_NaN.fit_transform(DF)) 
imputed_DF.columns = DF.columns 
imputed_DF.index = DF.index 

Eğer 0s ya hep could şey ile onları doldurmak istiyorsanız, sadece yapın:

DF[DF.isnull()] = 0 
+1

Çok kötü örnekler buldum ve bu bana ilk akla gelen şeydi. Teşekkür ederim! –

+1

Teşekkürler! Cevaplarımdan biriyle iyi bir geri bildirim almadım bu yüzden gerçekten takdir ediyorum. Ham numpy dizisi herhangi bir sklearn'den çıktığında DataFrame türünü orijinal sütun isimleri ve dizini ile geri yüklemek için gereken adımları dahil etmek için –

+1

+1 –

İlgili konular