Python 将同一字符串连接到数组或序列的所有元素

Python 将同一字符串连接到数组或序列的所有元素,python,pandas,numpy,Python,Pandas,Numpy,我有一个整数的np.array和一个str,我想要一个str类型的pd.Series,在np.array的每个元素前面都有一个str。有没有一种方法可以做到这一点,而不用创建一个包含重复次数的列表?类似于numpy广播的东西将是理想的 我尝试了pandas.Series.str.cat和np.core.defchararray.add,但这两种方法都只对等长序列/数组进行元素相加 以下是我想要的功能示例: # This is not code that will actually run! nu

我有一个整数的np.array和一个str,我想要一个str类型的pd.Series,在np.array的每个元素前面都有一个str。有没有一种方法可以做到这一点,而不用创建一个包含重复次数的列表?类似于numpy广播的东西将是理想的

我尝试了pandas.Series.str.cat和np.core.defchararray.add,但这两种方法都只对等长序列/数组进行元素相加

以下是我想要的功能示例:

# This is not code that will actually run!
nums = np.array([1, 2, 3, 4, 5])
name = "name "

result = concat_one_to_many(name, nums)
最后,我应该得到一个具有以下值的pd.系列

"name 1"
"name 2"
"name 3"
"name 4"
"name 5"

这必须尽可能快。这就是我避免使用循环或python列表理解的原因。如果无法避免这些问题,那么实现它们的最快方法是什么?

您可以使用map函数

新产品=pd系列APLAMBDA x:名称+标准配置,nums
map函数将迭代数组nums,并将定义的函数应用于每个元素。这里,lambda函数将应用操作名+strx,其中x是nums数组的一个元素。用pd.Series包装整个函数将返回带有默认索引的pandas序列。

您可以使用map函数

新产品=pd系列APLAMBDA x:名称+标准配置,nums
map函数将迭代数组nums,并将定义的函数应用于每个元素。这里,lambda函数将应用操作名+strx,其中x是nums数组的一个元素。使用pd.Series包装整个函数将返回带有默认索引的pandas系列。

如果需要pd.Series,只需向pandas系列添加一个字符串,它就会将其添加到每个元素:

numsAsSeries = pd.Series(nums)
wantedResult = name + numsAsSeries.astype(str)

如果您想要一个pd.Series,只需将一个字符串添加到pandas系列中,它就会将其添加到每个元素中:

numsAsSeries = pd.Series(nums)
wantedResult = name + numsAsSeries.astype(str)
np.char.replace是您需要的,但必须为其提供字符串数组,而不是数字类型:

>>> np.char.replace(np.array(nums, dtype=np.str), '', 'name ', 1)
array(['name 1', 'name 2', 'name 3', 'name 4', 'name 5'], dtype='<U6')
np.char.replace是您需要的,但必须为其提供字符串数组,而不是数字类型:

>>> np.char.replace(np.array(nums, dtype=np.str), '', 'name ', 1)
array(['name 1', 'name 2', 'name 3', 'name 4', 'name 5'], dtype='<U6')
name+pd.Seriesnums.astypestr?name+pd.Seriesnums.astypestr?