Python Pandas将一系列字符串连接成一个字符串

时间:2016-12-30 17:43:56

标签: string python-3.x pandas string-concatenation series

在python pandas中,有一个str值的Series / dataframe列组合成一个长字符串:

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

目标:'Hello world!'

到目前为止,df['text'].apply(lambda x: ' '.join(x))等方法只返回系列。

达到目标串联字符串的最佳方法是什么?

3 个答案:

答案 0 :(得分:16)

您可以直接join系列中的字符串:

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

Out[3]:
'Hello world !'

答案 1 :(得分:5)

CKEDITOR.instances.messageArea.setData(`{!! $page->body !!}`); 外,您还可以使用pandas字符串方法join

.str.cat

但是,In [171]: df.text.str.cat(sep=' ') Out[171]: 'Hello world !' 要快得多。

答案 2 :(得分:1)

您的代码是“返回系列”,因为您没有指定正确的轴。试试这个:

df.apply(' '.join, axis=0)
text    Hello world !
dtype: object

指定axis=0 将每列中的所有值组合起来,并将它们放在一个字符串中。返回类型是一个系列,其中索引标签是列名,值是相应的连接字符串。如果您想一次将多个列组合成一个字符串,这将特别有用。

一般来说,我发现在使用 apply 时理解您需要哪个轴是令人困惑的,因此如果它没有按照您认为的方式工作,请始终尝试沿另一个轴应用。