首页 > 解决方案 > Numpy添加外部,字符串更改?

问题描述

我有一个数据框 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']

我能怎么做?

标签: pythonarraysstringnumpyfunctools

解决方案


我会这样做:

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

推荐阅读