fügen Sie einen string-Präfix, um jeden Wert in eine string-Spalte mit Pandas
Möchte ich anfügen eine Zeichenfolge an den Anfang einer jeden Wert in einer der besagten Spalte ein pandas dataframe (aus).
Ich habe bereits herausgefunden, wie Art, dies zu tun und ich bin derzeit mit:
df.ix[(df['col'] != False), 'col'] = 'str'+df[(df['col'] != False), 'col']
Scheint dies eine Hölle eines unelegant, was zu tun - kennen Sie eine andere Möglichkeit (die vielleicht auch fügt das Zeichen zu Zeilen wo die Spalte ist 0 oder NaN)?
In diesem Fall ist noch unklar, ich würde gerne:
col
1 a
2 0
in:
col
1 stra
2 str0
- Was genau Fragen Sie? schreiben Sie bitte eine Erklärung auf, was Ihr code tut Sie es wünschen haben
- Ich dachte, was der Beispiel-code hat, war sehr klar, der Durchschnittliche pandas Benutzer. Ich habe Hinzugefügt, use-case-Beispiele für Ihre Bequemlichkeit.
- Deine Beschreibung ist etwas widersprüchlich mit Ihrem code. Was ist mit der
!= False
business? Möchten Siestr
jeder Wert oder nur einige? - zu jedem Wert angezeigt, wie in meinem Beispiel dataframes.
- dein Beispiel noch etwas unklar, haben Sie möchten so etwas wie
df['col'] = 'str' + df['col'].astype(str)
? - Super!!! Das ist genau das, was ich wollte. Schreiben Sie es unten als Antwort.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Beispiel:
Als alternative können Sie auch eine
apply
kombiniert mitformat
finde ich etwas besser lesbar, wenn man z.B. will auch Sie ein suffix oder zu manipulieren das element selbst:die auch Erträge die gewünschte Ausgabe:
Wenn Sie mit Python 3.6+, können Sie auch f-Saiten:
nachgeben der gleichen Ausgabe.
Den f-string-version ist fast so schnell wie @RomanPekar die Lösung von (python-3.6.4):
Mit
format
jedoch, ist in der Tat weit langsamer:format
in der Tat führt schlimmer. Wie hast du vergleichen?.apply
ist immer, wie schnell oder langsamer als "direct" - vektorisierte Operationen; selbst wenn Sie nicht langsamer ist, ich bevorzuge möglichst zu vermeiden.x
sich etc., aber das ist nur eine Frage des Geschmacks... 🙂Wenn Sie laden Sie die Tabelle Datei mit
dtype=str
oder konvertieren Sie die Spalte Typ auf string
df['a'] = df['a'].astype(str)
dann können Sie so Vorgehen:
Dieser Ansatz ermöglicht es, prepend, append und subset-string von
df
.Funktioniert auf Pandas v0.23.4, v0.24.1. Weiß nicht, über die früheren Versionen.