通过使用pyhton计算行范围中的元素来创建新列

2024-03-28 23:02:50 发布

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

我正在为每个匹配创建一个包含WL的排列,如下所示:

N_Match = 3
data = pd.DataFrame(list(itertools.product("WL", repeat=N_Match)))

因为我使用了N\u match=3,dataframe的输出将有3列: 我想为所有列中的每一行计算WL的数量。 我将创建一个新列,如下所示: 如果W的个数大于L的个数,则我将用于单元格的公式为1/2^(N\u匹配),否则为0

如何创建该列,如以下示例所示:

enter image description here

在这种情况下,0.125计算为1/2^N\u匹配, 提前谢谢你的建议。 谨致问候

泽普


Tags: 示例dataframedata数量matchproductlist公式
1条回答
网友
1楼 · 发布于 2024-03-28 23:02:50

^{}sum匹配值的计数一起使用,将True的值与^{}匹配:

mask = data.eq('W').sum(axis=1) > data.eq('L').sum(axis=1)
data['Prob'] = np.where(mask, 1/2**(N_Match), 0)
print (data)
   0  1  2   Prob
0  W  W  W  0.125
1  W  W  L  0.125
2  W  L  W  0.125
3  W  L  L  0.000
4  L  W  W  0.125
5  L  W  L  0.000
6  L  L  W  0.000
7  L  L  L  0.000

相关问题 更多 >