Ändern von Werten in pandas dataframe Spalte
Ich habe einen dataframe gefüllt mit mehreren Spalten. Ich brauche zum ändern der Werte einer Spalte für Daten-Normalisierung, wie in folgendem Beispiel:
User_id
751730951
751730951
0
163526844
...and so on
Muss ich ersetzen jeden Wert in der Spalte, die nicht 0 ist (string) in eine in so etwas wie "nicht leer". Ich habe es nun seit Stunden, aber immer noch nicht ändern kann jeder Wert, der nicht 0 ist, in etwas anderes. Replace()-Funktion funktioniert nicht wirklich gut. Einige gute Ideen?
BEARBEITEN (meine Lösung):
finalResult.loc[finalResult['update_user'] == '0', 'update_user'] = 'empty'
finalResult.loc[finalResult['update_user'] != 'empty', 'update_user'] = 'not empty'
- So
df['User_id'] = df['User_id'].replace('0', 'is not empty')
funktioniert nicht?
Du musst angemeldet sein, um einen Kommentar abzugeben.
ist oder wenn der Wert ein int,
df.loc[rows, cols]
ermöglicht das abrufen oder festlegen einer Reihe von Werten in Ihrer DataFrame. Der erste parameter ist Zeilen, in dem Fall bin ich mit einem boolean-Maske, um alle Zeilen, die nicht 0 inmycolumn
. Der zweite parameter ist die Spalte, die Sie wollen zu get/set. Da bin ich auf das einsetzen der gleichen Spalte, die ich abgefragt, es ist auchmycolumn
.Ich dann einfach mit dem Zuweisungsoperator zuweisen den Wert "nicht leer", wie Sie wollte.
Neue Spalte mit 'nicht leer'
Wenn Sie möchten, eine neue Spalte, um das 'nicht leer', so dass Sie nicht verunreinigen Ihre ursprünglichen Daten in
mycolumn
Sie tun können:Einfachste ist die Verwendung:
Wenn
0
istint
:Angenommen, wir verwenden eine Reihe mit den angegebenen Daten in der Frage, namens user_id, mit einer einzigen Zeile, die Sie tun, was Sie brauchen:
Ich weiß nicht, wie loc sehr viel, da ich denke es erschwert das Lesen.
Könnte es besser sein, als zu ersetzen, denn es ermöglicht den umgekehrten Fall: