ich ein sehr einfaches Datenrahmen in Pandas haben,imputieren fehlende Werte auf 0 und erstellen Anzeigesäulen in Pandas
testdf = [{'name' : 'id1', 'W': np.NaN, 'L': 0, 'D':0},
{'name' : 'id2', 'W': 0, 'L': np.NaN, 'D':0},
{'name' : 'id3', 'W': np.NaN, 'L': 10, 'D':0},
{'name' : 'id4', 'W': 75, 'L': 20, 'D':0}
]
testdf = pd.DataFrame(testdf)
testdf = testdf[['name', 'W', 'L', 'D']]
, die wie folgt aussieht:
| name | W | L | D |
|------|-----|-----|---|
| id1 | NaN | 0 | 0 |
| id2 | 0 | NaN | 0 |
| id3 | NaN | 10 | 0 |
| id4 | 75 | 20 | 0 |
Mein Ziel ist einfach:
1) Ich möchte alle fehlenden Werte unterstellen, indem ich sie einfach durch 0 ersetze. 0)
2) Als nächstes möchte ich Indikatorspalten mit einer 0 oder 1 erstellen, um anzuzeigen, dass der neue Wert (die 0) tatsächlich durch die Imputation erzeugt wird Prozess.
Es ist wahrscheinlich einfacher zu zeigen, anstatt mit Worten zu erklären:
| name | W | W_indicator | L | L_indicator | D | D_indicator |
|------|----|-------------|----|-------------|---|-------------|
| id1 | 0 | 1 | 0 | 0 | 0 | 0 |
| id2 | 0 | 0 | 0 | 1 | 0 | 0 |
| id3 | 0 | 1 | 10 | 0 | 0 | 0 |
| id4 | 75 | 0 | 20 | 0 | 0 | 0 |
Meine Versuche sind gescheitert, da ich stecken versucht, alle nicht-NaN-Werte bis zu einem gewissen Platzhalter Wert zu ändern, dann alle NaNs ändern eine 0, dann ändere den Platzhalterwert auf NaN, etc. usw. Es wird so schnell unordentlich. Dann bekomme ich alle möglichen Scheibenwarnungen. Und die Masken werden alle durcheinander gebracht. Ich bin mir sicher, dass es einen viel eleganteren Weg gibt, dies zu tun als meine wackeligen heuristischen Methoden.
Wenn meine Antwort hilfreich war, vergessen Sie nicht "akzeptieren" Sie es. Vielen Dank. (Und auch Sie können verbundene Frage und große Antworten überprüfen und sie auffrischen) – jezrael
Ja, Sir, ich bin dabei –