Numpy 添加外部,字符串更改?
Numpy add outer, string change?
我有一个数据框
df1=
HPE FRE UNE
0 S0 S0 S0
1 S1 S1 S1
使用下面的代码("reduce" 是一个 functool 函数,sta 是一个包含 df1 列的列表):
reduce(lambda x,y:np.add.outer(x,y),sta).reshape(-1)
我将我的数据帧缩减为 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)))
假设一个不那么退化的输入df1
使例子更清楚:
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
我有一个数据框 df1=
HPE FRE UNE
0 S0 S0 S0
1 S1 S1 S1
使用下面的代码("reduce" 是一个 functool 函数,sta 是一个包含 df1 列的列表):
reduce(lambda x,y:np.add.outer(x,y),sta).reshape(-1)
我将我的数据帧缩减为 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)))
假设一个不那么退化的输入df1
使例子更清楚:
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