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



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

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

目标:"你好,世界!

到目前为止,诸如df['text'].apply(lambda x: ' '.join(x))之类的方法仅返回序列。

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

您可以直接在序列上join一个字符串:

In [3]:
' '.join(df['text'])
Out[3]:
'Hello world !'

除了join,你也可以使用pandas string方法.str.cat

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

但是,join()要快得多。

您的代码正在"返回序列",因为您没有指定正确的轴。试试这个:

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

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

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

最新更新