gpt4 book ai didi

pandas - 相应列之间的 Sum-Product - Pandas/Numpy

转载 作者:行者123 更新时间:2023-12-01 12:04:31 24 4
gpt4 key购买 nike

我想添加列并在相应列(按名称)上应用 Sum-Product。

数据说明:

 VAR1  VAR2  1834_Value  1673_Value  153_Value  0_Value  1834_Prob  0_Prob  1673_Prob  153_Prob
4 1 10 20 30 40 0.100 0.400 0.200 0.300
1 3 28 79 88 36 0.187 0.057 0.181 0.574
3 3 30 72 59 95 0.227 0.050 0.171 0.552
4 2 55 46 85 97 NaN NaN NaN NaN
1 2 28 41 62 64 0.251 0.092 0.084 0.573
5 1 82 51 21 24 NaN NaN NaN NaN
2 2 27 90 71 83 0.114 0.003 0.131 0.751
5 2 97 94 46 46 0.285 0.112 0.126 0.477
2 5 27 66 73 44 NaN NaN NaN NaN
1 5 39 76 90 58 NaN NaN NaN NaN
5 2 63 71 47 92 0.279 0.163 0.212 0.346

例如:第一行的值应该是:0.1*10 + 0.2*20 + 0.3*30 + 0.4*40 = 30.

  • 注意:列不按顺序排列。

预期结果:

 VAR1  VAR2  1834_Value  1673_Value  153_Value  0_Value  1834_Prob  0_Prob  1673_Prob  153_Prob  SumProduct
4 1 10 20 30 40 0.100 0.400 0.200 0.300 30.000
1 3 28 79 88 36 0.187 0.057 0.181 0.574 72.175
3 3 30 72 59 95 0.227 0.050 0.171 0.552 56.464
4 2 55 46 85 97 NaN NaN NaN NaN NaN
1 2 28 41 62 64 0.251 0.092 0.084 0.573 51.885
5 1 82 51 21 24 NaN NaN NaN NaN NaN
2 2 27 90 71 83 0.114 0.003 0.131 0.751 68.523
5 2 97 94 46 46 0.285 0.112 0.126 0.477 66.570
2 5 27 66 73 44 NaN NaN NaN NaN NaN
1 5 39 76 90 58 NaN NaN NaN NaN NaN
5 2 63 71 47 92 0.279 0.163 0.212 0.346 63.905

最佳答案

这是我的方法:

s = df.iloc[:,2:]
df['sum_prod'] = (s.groupby(s.columns.str.extract('^(\d+)')[0].values,
axis=1)
.prod(min_count=2).sum(1, skipna=False)
)

print(df['sum_prod'])

输出:

0     30.000
1 72.099
2 56.440
3 NaN
4 51.886
5 NaN
6 68.438
7 66.583
8 NaN
9 NaN
10 63.887
Name: sum_prod, dtype: float64

关于pandas - 相应列之间的 Sum-Product - Pandas/Numpy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59075433/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com