【问题标题】:Pandas: divide value of one matrix by another with respective subindexPandas:用相应的子索引将一个矩阵的值除以另一个矩阵
【发布时间】:2017-04-27 17:36:40
【问题描述】:

如果 A 值的子索引是 B 的索引,我想将矩阵 A 的每个值除以矩阵 B 的值。

举个例子: 答:

         (A, 1)    (A, 2)    (B, 1)    (B, 2)    (B, 3)
(A, 1)  0.102179  0.024903  0.598978  0.141483  0.904239
(A, 2)  0.563096  0.765552  0.608203  0.339500  0.671222
(B, 1)  0.867550  0.432277  0.311634  0.165246  0.046199
(B, 2)  0.813666  0.846750  0.145595  0.996221  0.209762
(B, 3)  0.834860  0.176203  0.886546  0.506550  0.883405

和乙:

   (A, 1)    (A, 2)    (B, 1)    (B, 2)    (B, 3)
1  0.996778  0.801235  0.120127  0.863761  0.519856
2  0.757775  0.706402  0.428906  0.479940  0.001049

我想要A的第一列:

         (A, 1)    
(A, 1)  0.102179/0.996778  
(A, 2)  0.563096/0.757775
(B, 1)  0.867550/0.996778
(B, 2)  0.813666/0.757775
(B, 3)  0.834860

其他列的想法相同,例如第二个:

        (A, 2)
(A, 1)  0.024903/0.801235
(A, 2)  0.765552/0.706402
(B, 1)  0.432277/0.801235
(B, 2)  0.846750/0.706402
(B, 3)  0.176203

我在 Panda 的 group by approach 中寻找,但我没有找到合适的东西。提前谢谢你。

【问题讨论】:

    标签: pandas matrix


    【解决方案1】:

    我觉得你需要div:

    df = df1.div(df2, level=1, fill_value=1)
    print (df)
                A                   B                      
                1         2         1         2           3
    A 1  0.102509  0.031081  4.986206  0.163799    1.739403
      2  0.743091  1.083734  1.418033  0.707380  639.868446
    B 1  0.870354  0.539513  2.594204  0.191310    0.088869
      2  1.073757  1.198680  0.339457  2.075720  199.963775
      3  0.834860  0.176203  0.886546  0.506550    0.883405
    
    print (0.102179/0.996778 )
    0.10250928491599935
    

    【讨论】:

    • 正是我需要的。我找到了 div,但我还没有理解 fill_value 并且每个具有不匹配索引的值都变成了 NaN。
    • 很高兴能帮到你,美好的一天!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-20
    • 2015-06-16
    • 1970-01-01
    • 2012-12-29
    • 2016-11-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多