702 Stimmen

Unterschied zwischen den Methoden map, applymap und apply in Pandas

Können Sie mir sagen, wann man diese Vektorisierungsmethoden mit einfachen Beispielen verwenden sollte?

Ich sehe, dass map eine Methode für Series ist, während die anderen Methoden für DataFrame sind. Ich war jedoch verwirrt über die Methoden apply und applymap. Warum haben wir zwei Methoden, um eine Funktion auf ein DataFrame anzuwenden? Wieder würden einfache Beispiele, die die Verwendung veranschaulichen, hilfreich sein!

2voto

prosti Punkte 34344

FOMO:

Das folgende Beispiel zeigt apply und applymap angewendet auf ein DataFrame.

map Funktion ist etwas, das man nur auf Serien anwendet. Man kann map nicht auf DataFrame anwenden.

Wichtig ist zu bedenken, dass apply alles beliebiges tun kann, was applymap kann, aber apply hat zusätzliche Optionen.

Die X-Faktor-Optionen sind: axis und result_type, wobei result_type nur funktioniert, wenn axis=1 (für Spalten).

df = DataFrame(1, columns=list('abc'),
                  index=list('1234'))
print(df)

f = lambda x: np.log(x)
print(df.applymap(f)) # auf das gesamte DataFrame anwenden
print(np.log(df)) # auf das gesamte DataFrame angewendet
print(df.applymap(np.sum)) # Reduzieren kann nur für Zeilen angewendet werden

# apply kann unterschiedliche Optionen annehmen (im Gegensatz zu applymap)
print(df.apply(f)) # wie applymap
print(df.apply(sum, axis=1))  # Reduzierungsbeispiel
print(df.apply(np.log, axis=1)) # kann nicht reduzieren
print(df.apply(lambda x: [1, 2, 3], axis=1, result_type='expand')) # Ergebnis erweitern

Als letzte Anmerkung sollte die Series map Funktion nicht mit der Python map Funktion verwechselt werden.

Die erste wird auf Serien angewendet, um die Werte zuzuweisen, und die zweite auf jedes Element eines Iterables.


Zuletzt sollte die DataFrame apply Methode nicht mit der groupby apply Methode verwechselt werden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X