在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))
等方法只返回系列。
达到目标串联字符串的最佳方法是什么?
答案 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 时理解您需要哪个轴是令人困惑的,因此如果它没有按照您认为的方式工作,请始终尝试沿另一个轴应用。