Numpy add outer,字符串更改?

2024-04-19 03:35:29 发布

您现在位置:Python中文网/ 问答频道 /正文

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

我该怎么办?你知道吗


Tags: 数据lambda函数代码reduce列表npdf1
1条回答
网友
1楼 · 发布于 2024-04-19 03:35:29

我会这样做:

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

相关问题 更多 >