gpt4 book ai didi

python - 使用公共(public) key 在数据帧上广播系列乘法

转载 作者:行者123 更新时间:2023-12-04 10:09:51 27 4
gpt4 key购买 nike

我有一个数据框和一个 Pandas 系列

数据框包含我需要用来乘以我的系列的权重。
这两个对象共享相同的 key Key
以下是我拥有的数据框( df ):

Col               3         5
Key Idx2
1 1 0.571429 0.000000
4 0.200000 0.000000
5 0.000000 0.228571
2 6 1.000000 0.000000
6 5 0.000000 1.000000
7 5 0.088235 0.882353
6 0.029412 0.000000
8 5 0.727273 0.272727
11 2 1.000000 0.000000
12 1 0.158730 0.000000
5 0.000000 0.595238
6 0.011905 0.000000
2 0.019841 0.000000
3 0.150794 0.063492
13 2 1.000000 0.000000
14 2 1.000000 0.000000
15 2 1.000000 0.000000


这是系列( s):
Key
1 106.0
2 270.0
3 378.0
4 78.0
5 80.0
6 0.0
7 0.0
8 0.0
9 0.0
10 0.0
11 0.0
12 0.0
13 0.0
14 0.0
15 0.0

我不确定如何正确地将两者相乘以保持 df 的形状并将 df 中的每个值相乘通过相应的 Key 上的值在 s .

所需的输出将是:

Col 3 5
Key Idx2
1 1 60.57147 0.000000
4 21.20000 0.000000
5 0.000000 24.22853
2 6 270.0000 0.000000
6 5 0.000000 0.000000
7 5 0.000000 0.000000
6 0.000000 0.000000
8 5 0.000000 0.000000
11 2 0.000000 0.000000
12 1 0.000000 0.000000
5 0.000000 0.000000
6 0.000000 0.000000
2 0.000000 0.000000
3 0.000000 0.000000
13 2 0.000000 0.000000
14 2 0.000000 0.000000
15 2 0.000000 0.000000


我想做的是使用 df.mul但似乎这样我正在执行一个元素一个元素的乘法:
df.mul(s, fill_value = 0)

1 2 3 4 5 6 ... 10 11 12 13 14 15
Key Idx2 ...
1 1 NaN NaN 216.000000 NaN 0.000000 NaN ... NaN NaN NaN NaN NaN NaN
4 NaN NaN 75.600000 NaN 0.000000 NaN ... NaN NaN NaN NaN NaN NaN
5 NaN NaN 0.000000 NaN 18.285714 NaN ... NaN NaN NaN NaN NaN NaN
2 6 NaN NaN 378.000000 NaN 0.000000 NaN ... NaN NaN NaN NaN NaN NaN
6 5 NaN NaN 0.000000 NaN 80.000000 NaN ... NaN NaN NaN NaN NaN NaN
7 5 NaN NaN 33.352941 NaN 70.588235 NaN ... NaN NaN NaN NaN NaN NaN
6 NaN NaN 11.117647 NaN 0.000000 NaN ... NaN NaN NaN NaN NaN NaN
8 5 NaN NaN 274.909091 NaN 21.818182 NaN ... NaN NaN NaN NaN NaN NaN
11 2 NaN NaN 378.000000 NaN 0.000000 NaN ... NaN NaN NaN NaN NaN NaN
12 1 NaN NaN 60.000000 NaN 0.000000 NaN ... NaN NaN NaN NaN NaN NaN
5 NaN NaN 0.000000 NaN 47.619048 NaN ... NaN NaN NaN NaN NaN NaN
6 NaN NaN 4.500000 NaN 0.000000 NaN ... NaN NaN NaN NaN NaN NaN
2 NaN NaN 7.500000 NaN 0.000000 NaN ... NaN NaN NaN NaN NaN NaN
3 NaN NaN 57.000000 NaN 5.079365 NaN ... NaN NaN NaN NaN NaN NaN
13 2 NaN NaN 378.000000 NaN 0.000000 NaN ... NaN NaN NaN NaN NaN NaN
14 2 NaN NaN 378.000000 NaN 0.000000 NaN ... NaN NaN NaN NaN NaN NaN
15 2 NaN NaN 378.000000 NaN 0.000000 NaN ... NaN NaN NaN NaN NaN NaN

最佳答案

对我工作来说axis=0level=0 DataFrame.mul 中的参数:

df = df.mul(s, axis=0, level=0)
print (df)
3 5
Key Idx2
1 1 60.571474 0.000000
4 21.200000 0.000000
5 0.000000 24.228526
2 6 270.000000 0.000000
6 5 0.000000 0.000000
7 5 0.000000 0.000000
6 0.000000 0.000000
8 5 0.000000 0.000000
11 2 0.000000 0.000000
12 1 0.000000 0.000000
5 0.000000 0.000000
6 0.000000 0.000000
2 0.000000 0.000000
3 0.000000 0.000000
13 2 0.000000 0.000000
14 2 0.000000 0.000000
15 2 0.000000 0.000000

关于python - 使用公共(public) key 在数据帧上广播系列乘法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61382866/

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