Als Erweiterung dessen, was von Nico Coallier (für mehrere Spalten anwenden) und U10-Forward (Verwendung von anwendungsstil-Methoden) vorgeschlagen wurde, und zusammengefasst in einer Einzeiler schlage ich vor:
df.loc[:,['col1','col2']].transform(lambda x: x.map(lambda x: {1: "A", 2: "B"}.get(x,x))
Der .transform()
verarbeitet jede Spalte als Serie. Im Gegensatz zu .apply()
, das die Spalten in einem DataFrame zusammenfasst.
Demnach können Sie die Series Methode map()
anwenden.
Zuletzt, und ich habe dieses Verhalten dank U10 entdeckt, können Sie die gesamte Serie im .get() Ausdruck verwenden. Es sei denn, ich habe sein Verhalten falsch verstanden und es verarbeitet die Serie sequentiell anstatt bitweise.
Die .get(x,x)
berücksichtigt die Werte, die Sie nicht in Ihrem Zuordnungsdatensatz erwähnt haben, was sonst als NaN durch die .map()
Methode betrachtet würde.