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.