向大家问好,
我有这个表(没有 Res_Problem):
我想做一个循环,将影响和概率相乘,直到得到所需值(例如 6),然后停止循环,直到达到 6。但在 ID2 上再次开始循环...等等,有什么建议吗?
我认为它必须是这样的:
while (df['问题'] - df['影响']*df['影响'] < 6): df['循环'] = res
循环应创建“Res_Problem”列
最佳答案
这里有一个选项:
s = (df['Problem']
.sub(df['Impact'].mul(df['Prob'])
.groupby(df['ID']).cumsum()
)
)
m = s.le(6).groupby(df['ID']).shift(fill_value=False)
df['Res_Problem'] = s.mask(m)
输出:
ID Problem X Impact Prob Res_Problem
0 ID1 12 IDC1 1 2 10.0
1 ID1 12 IDC2 2 2 6.0
2 ID1 12 IDC3 1 0 NaN
3 ID1 12 IDC4 1 0 NaN
4 ID2 10 IDB1 1 2 8.0
5 ID2 10 IDB1 1 2 6.0
关于python - 乘以 2 列,直到获得所需的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74619855/