Ich verstehe ich eine Spalte zu einem Datenrahmen hinzufügen und ihre Werte auf die Werte aus einer Funktion, wie diese zurück aktualisieren:Wie man durch eine Spalte im Datenrahmen iteriert und zwei neue Spalten gleichzeitig aktualisiert?
df=pd.DataFrame({'x':[1,2,3,4]})
def square(x):
return x*x
df['x_squared'] = [square(i) for i in df['x']]
Allerdings habe ich ein Problem bin vor, dass die eigentliche Funktion zwei Elemente zurückgibt, und ich möchte diese zwei Elemente in zwei verschiedene neue Spalten setzen. Ich schrieb hier ein Pseudo-Code mein Problem deutlicher zu beschreiben:
df=pd.DataFrame({'x':[1,2,3,4]})
def squareAndCube(x):
return x*x, x*x*x
#below is a pseudo-code
df['x_squared'], df['x_cubed'] = [squareAndCube(i) for i in df['x']]
Above Codes geben Sie mir eine Fehlermeldung „zu viele Werte entpacken“ sagen. Also, wie soll ich das beheben?
große Antwort @Divakar, +1 – piRSquared
btw die Ausstrahlung ist WAY1 !! 1 schneller als meine log_dot Lösung. – piRSquared
Das ist eine wirklich gute Antwort! Ich habe diese 'squareAndCube()' -Funktion verwendet, um mein Problem einfach zu lösen. Mein wirkliches Problem ist, dass ich eine Adresse als Eingabe verwenden muss und den Breiten- und Längengrad zurückgeben muss. So wählte ich schließlich die 'map'- und' zip'-Methode.Aber es ist wirklich großartig zu wissen, dass es mehrere andere Methoden gibt! Danke @Divakar. – user3768495