在数据帧上用公钥广播式地进行系列乘法

我有一个数据框架和一个熊猫系列。

数据框包含 权重 我需要用它来乘以我的系列。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 的值,以相应的 Keys.

所需的输出将是。


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

给TA打赏
共{{data.count}}人
人已打赏
解决方案

在Sankey图中显示总价值

2022-5-12 4:00:18

解决方案

不能用PHP的SSH命令创建活动目录用户。

2022-5-12 4:00:21

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索