Python Numpy添加外部,字符串更改?
我有一个数据帧 df1= 使用以下代码(“reduce”是functool函数,sta是包含df1列的列表): 我将数据帧缩减为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
['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