Python Numpy添加外部,字符串更改?

Python Numpy添加外部,字符串更改?,python,arrays,string,numpy,functools,Python,Arrays,String,Numpy,Functools,我有一个数据帧 df1= 使用以下代码(“reduce”是functool函数,sta是包含df1列的列表): 我将数据帧缩减为numpy数组,如下所示: ['S0S0S0' 'S0S0S1' 'S0S1S0' 'S0S1S1' 'S1S0S0' 'S1S0S1' 'S1S1S0' 'S1S1S1'] 但我希望我的输出如下所示: ['S0|S0|S0' 'S0|S0|S1' 'S0|S1|S0' 'S0|S1|S1' 'S1|S0|S0' 'S1|S0|S1' 'S1|S1|S0' 'S1|S

我有一个数据帧 df1=

使用以下代码(“reduce”是functool函数,sta是包含df1列的列表):

我将数据帧缩减为numpy数组,如下所示:

['S0S0S0' 'S0S0S1' 'S0S1S0' 'S0S1S1' 'S1S0S0' 'S1S0S1' 'S1S1S0' 'S1S1S1']
但我希望我的输出如下所示:

['S0|S0|S0' 'S0|S0|S1' 'S0|S1|S0' 'S0|S1|S1' 'S1|S0|S0' 'S1|S0|S1' 'S1|S1|S0' 'S1|S1|S1']
我该怎么办?

我会这样做:

pd.Series(map('|'.join, itertools.product(*sta)))
假设输入的退化程度较低,为使示例更清晰,请执行以下操作:

  HPE FRE UNE
0  AB  CD  EF
1  GH  IJ  KL
sta=[df1.HPE,df1.FRE,df1.UNE]
,结果是:

0    AB|CD|EF
1    AB|CD|KL
2    AB|IJ|EF
3    AB|IJ|KL
4    GH|CD|EF
5    GH|CD|KL
6    GH|IJ|EF
7    GH|IJ|KL

这对你有什么作用?我得到
TypeError:ufunc'add'不包含具有签名匹配类型的循环
@coldspeed:您可以发布您尝试执行的代码吗?这种
add
仅在数组为object dtype时有效。然后数组
add
将任务委托给每个元素的
add
方法,对于字符串,该方法是一个
join
。它不适用于
string
dtype数组。这是一个特性,不是设计或记录的行为。难道你不能像对待另一个字符串一样对待“|”吗?你将它添加到其他字符串中?
reduce(lambda x,y:np.add.outer(x,y),df.t.values.tolist())
  HPE FRE UNE
0  AB  CD  EF
1  GH  IJ  KL
0    AB|CD|EF
1    AB|CD|KL
2    AB|IJ|EF
3    AB|IJ|KL
4    GH|CD|EF
5    GH|CD|KL
6    GH|IJ|EF
7    GH|IJ|KL