2017-09-08 4 views
0

Ich habe eine CSV-Datei, und ich bereite seine Daten mit verschiedenen maschinellen Lernalgorithmen trainiert werden, so ersetzt ich fehlende numerische Daten mit dem Mittelwert dieser Spalte, aber wie mit fehlenden umzugehen kategorische Daten, sollte ich sie durch das häufigste Element ersetzen? und was ist der einfachste warum, um es in Python mit Pandas zu tun.Umgang mit fehlenden kategorischen Daten python

Code:

dataset = pd.read_csv('doc.csv') 
X = dataset.iloc[:, [2, 4, 5, 6, 7, 9,10 ,11]].values 
y = dataset.iloc[:, -1].values 

Zeilennummer 2 enthält die kategorischen Daten.

ersten Zeilenwert:

[3, 'S', 22,0, 1, 0, 7,25, 107722, 2]

Antwort

2

In Bezug auf die Modellierung Teil Ihrer Frage, du bist besser fragen, dass bei CrossValidated. Wenn zu viele Datensätze mit fehlenden Daten vorhanden sind, können Sie diese Spalte einfach aus der Betrachtung entfernen. Es gibt einige andere ausgezeichnete Vorschläge zu this StackOverflow post, einschließlich sci-kit lernen Imputer() Methode, oder einfach lassen Sie das Modell die fehlenden Daten behandeln.

eine Spalte in die DataFrame.replace() Methode sucht In Bezug auf Ersatz

DataFrame.replace(
     to_replace=None, 
     value=None, 
     inplace=False, 
     limit=None, 
     regex=False, 
     method='pad', 
     axis=None) 

Ein Beispiel für die Verwendung dieses für Ihr Daten-Set, unter der Annahme, dass die fehlenden Spaltenwerte ‚N‘ genannt und Sie ersetzt sie durch eine andere Kategorie ' S '(die Sie mit der DataFrame.mode() Methode herausgefunden haben): dataset[1].replace('N', 'S').

Verwandte Themen