Imputer auf einige Dataframe Spalten in Python
Bin ich lernen, wie man Imputer auf Python.
Dies ist mein code:
df=pd.DataFrame([["XXL", 8, "black", "class 1", 22],
["L", np.nan, "gray", "class 2", 20],
["XL", 10, "blue", "class 2", 19],
["M", np.nan, "orange", "class 1", 17],
["M", 11, "green", "class 3", np.nan],
["M", 7, "red", "class 1", 22]])
df.columns=["size", "price", "color", "class", "boh"]
from sklearn.preprocessing import Imputer
imp=Imputer(missing_values="NaN", strategy="mean" )
imp.fit(df["price"])
df["price"]=imp.transform(df["price"])
Aber dieser erhebt die folgende Fehlermeldung:
ValueError: Länge der Werte entspricht nicht der Länge des index
Was ist falsch an meinem code???
Danke für die Hilfe
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist, weil
Imputer
in der Regel verwendet mit DataFrames eher als Serie. Eine mögliche Lösung ist:ravel()
hier notwendig? Es scheint, die Rückkehr der richtige Typ, ohne esIch denke, Sie wollen, geben Sie die Achse für die imputer, dann transponieren des Arrays zurückgegeben:
Einfache Lösung ist, um eine 2D-array
Hier ist Ihre DataFrame
Gereinigt DataFrame
Hier ist die Dokumentation für Einfache Imputer Für die fit-Methode, es dauert array-oder sparse-metrix-als input-parameter.
Sie können versuchen, diese :
bieten index-Speicherort zu fit-Methode und wenden dann die Transformation.
Gleichen Weise, die Sie tun können, für
boh
Freundlicherweise korrigiert mich wenn ich falsch bin. Anregungen werden geschätzt.