2017-03-16 3 views
1

Ich habe eine Pandas DataFrame mit Strings gefüllt. Ich möchte eine String-Operation auf alle Einträge anwenden, zum Beispiel capitalize(). Ich weiß, dass wir für eine Serie verwenden können. Ich weiß auch, dass ich die Spalte des Dataframes durchlaufen kann und dies für jede der Spalten tun kann. Aber ich möchte etwas effizienteres und eleganteres, ohne Schleifen. DankVerwendung auf Pandas Datenrahmen mit Strings ohne Schleife über Serie

Antwort

1

Verwendung stack + unstack
stack macht einen Datenrahmen mit einer einzigen Ebene Spaltenindex in eine Reihe. Sie können dann Ihre str.capitalize() und unstack ausführen, um Ihr Originalformular zurück zu erhalten.

df.stack().str.capitalize().unstack() 
+0

, dass ein nützlicher Trick im Allgemeinen zu wissen, ist, dank – splinter

+2

beachten Sie, dass dies performant sein nicht verglichen Spalten wie diese Kopien mehr anwenden über (und folgert dtypes) und ist nicht als Cache-freundlich - so YMMV (das sagte Es ist ein schönes Idiom, wenn Sie alle Objektdaten haben) – Jeff

Verwandte Themen