2016-12-30 6 views
4

In Python Pandas wird eine Serie/Datenrahmen Spalte von str Werte in einer langen Kette zu kombinieren:Python Pandas verketten eine Reihe von Zeichenfolgen in eine Zeichenfolge

df = pd.DataFrame({'text' : pd.Series(['Hello', 'world', '!'], index=['a', 'b', 'c'])}) 

Ziel: ‚Hallo Welt!‘

Bisher gibt Methoden wie df['text'].apply(lambda x: ' '.join(x)) nur die Serie zurück.

Was ist der beste Weg, um zum Ziel verketteten String zu gelangen?

Antwort

7

Sie können join eine Saite auf der Serie direkt:

In [3]: 
' '.join(df['text']) 

Out[3]: 
'Hello world !' 
+0

Ich bekomme einen Fehler dabei: "TypeError: Sequenz-Element 0: erwartete Str-Instanz, Liste gefunden". Dies ist in Python3, könnten Sie bitte führen? – user1930402

+0

@ user1930402 Fragen in Kommentaren ist schlechte Form auf SO, die Fehlermeldung ist klar, Sie haben Listen in Ihrem Dataframe nicht Zeichenfolgen daher der Fehler. Da ich keinen Zugang zu Ihrem Computer habe, kann ich nur spekulieren, dass Sie aus irgendeinem Grund Listen in Ihrem df speichern, was nicht ratsam ist. Ich kann dir nicht helfen, du musst eine neue Frage stellen, du solltest dich auch fragen, ob du wirklich Listen speichern musst, es vereitelt die Verwendung von Pandas, wenn du nicht-skalare Werte speicherst – EdChum

2

Neben join, könnten Sie auch Pandas String-Methode .str.cat

In [171]: df.text.str.cat(sep=' ') 
Out[171]: 'Hello world !' 

jedoch join() ist viel schneller nutzen.

Verwandte Themen