我有以下熊猫系列,其中每一行都是一个长字符串,没有空格。它的形状为(250,)(即有250行)

import pandas as pd
sr1 = pd.Series(...)

                                                     0
0    abdcadbcadcbadacbadbdddddacbadcbadadbcadbcadad...
1    cacacdacadbdcadcabdcbadcbadbdabcabdbbbbbacdbac...
2    bbbbbcadcacddabcadbcdabcbaddcbadcbadbcadbcaaba...
3    acdbcdacdbadbadcbdbaaaacbdacadbacaddcabdacbdab...
....


我有250个字符串的列表,我希望将它们附加到每行的开头。

list_of_strings = ["prefix1", "prefix2", "prefix3", ...., "prefix250"]


如何将list_of_strings中的每个元素附加到sr1中的相应行?生成的系列应如下所示:

                                                    0
0    prefix1    abdcadbcadcbadacbadbdddddacbadcbadadbcadbcadad...
1    prefix2    cacacdacadbdcadcabdcbadcbadbdabcabdbbbbbacdbac...
2    prefix3    bbbbbcadcacddabcadbcdabcbaddcbadcbadbcadbcaaba...
3    prefix4    acdbcdacdbadbadcbdbaaaacbdacadbacaddcabdacbdab...
....


我首先想到的是尝试以下方法:

sr1.insert(0, "prefixes", value = list_of_strings)


但这会引发错误AttributeError: 'Series' object has no attribute 'insert'。可以将sr1转换为带有sr1 = sr1.to_frame()的pandas DataFrame,而上一个.insert()将导致具有两列的DataFrame。

在python中,我们可以使用指定的分隔符来连接字符串,如下所示:

first = "firstword"
second = "secondword"
combined = "    ".join([first, second])
## outputs 'firstword    secondword'


我不确定熊猫系列会如何发展。也许.apply(' '.join)以某种方式?

最佳答案

您需要首先从Series创建list,然后添加双精度add+-一个用于空格,另一个用于s

s = pd.Series(['a','b','c'])
list_of_strings = ["prefix1", "prefix2", "prefix3"]

print (pd.Series(list_of_strings, index=s.index).add(' ').add(s))
#same as
#print (pd.Series(list_of_strings, index=s.index)+ ' ' + s)
0    prefix1 a
1    prefix2 b
2    prefix3 c
dtype: object


cat的另一种解决方案:

print (pd.Series(list_of_strings, index=s.index).str.cat(s, sep=' '))
0    prefix1 a
1    prefix2 b
2    prefix3 c
dtype: object


使用apply的解决方案,但需要DataFrame-通过构造函数或通过concat

print (pd.DataFrame({'prefix':list_of_strings, 'vals':s}).apply(' '.join, axis=1))
0    prefix1 a
1    prefix2 b
2    prefix3 c
dtype: object




print (pd.concat([pd.Series(list_of_strings, index=s.index), s], axis=1)
         .apply(' '.join, axis=1))
0    prefix1 a
1    prefix2 b
2    prefix3 c
dtype: object

10-08 04:08