python – 在DataFrame中乘以多个列

python – 在DataFrame中乘以多个列,第1张

概述我正在尝试将DataFrame中的N列乘以同一DataFrame中的N列,然后将结果除以一列.我在第一部分遇到问题,请参见下面的示例. import pandas as pdfrom numpy import randomfoo = pd.DataFrame({'A':random.rand(10), 'B':random.rand(10), 我正在尝试将DataFrame中的N列乘以同一DataFrame中的N列,然后将结果除以一列.我在第一部分遇到问题,请参见下面的示例.

import pandas as pdfrom numpy import randomfoo = pd.DataFrame({'A':random.rand(10),'B':random.rand(10),'C':random.rand(10),'N':random.randint(1,100,10),'X':random.rand(10),'Y':random.rand(10),'Z':random.rand(10),})foo[['A','B','C']].multiply(foo[['X','Y','Z']],axis=0).divIDe(foo['N'],axis=0)

我想要的是逐列乘法(即A * X,B * Y,C * Z)
结果不是N列矩阵而是2N列,其中我想要乘以的列被添加到DataFrame,并且所有条目都具有NaN值,如下所示:

A   B   C   X   Y   Z0 NaN NaN NaN NaN NaN NaN1 NaN NaN NaN NaN NaN NaN2 NaN NaN NaN NaN NaN NaN3 NaN NaN NaN NaN NaN NaN4 NaN NaN NaN NaN NaN NaN5 NaN NaN NaN NaN NaN NaN6 NaN NaN NaN NaN NaN NaN7 NaN NaN NaN NaN NaN NaN8 NaN NaN NaN NaN NaN NaN9 NaN NaN NaN NaN NaN NaN

这里发生了什么,我如何进行逐列乘法?

解决方法 这将使用列X,Y,Z和N中的值,但它可能会帮助您查看问题所在:

>>> (foo[['A','C']]     .multiply(foo[['X','Z']].values)     .divIDe(foo['N'].values,axis=0))          A         B         C0  0.000452  0.004049  0.0103641  0.004716  0.001566  0.0128812  0.001488  0.000296  0.0044153  0.000269  0.001168  0.0003274  0.001386  0.008267  0.0120485  0.000084  0.009588  0.0031896  0.000099  0.001063  0.0064937  0.009958  0.035766  0.0126188  0.001252  0.000860  0.0004209  0.006422  0.005013  0.004108

结果在列A,B,C上编制索引.不清楚结果列应该是什么,这就是您获取NaN的原因.

使用.values附加上面的函数将为您提供所需的结果,但是由您来替换索引和列.

>>> (foo[['A',axis=0)).valuesarray([[  4.51754797e-04,4.04911292e-03,1.03638836e-02],[  4.71588457e-03,1.56556402e-03,1.28805803e-02],[  1.48820116e-03,2.95700572e-04,4.41516179e-03],[  2.68791866e-04,1.16836123e-03,3.27217820e-04],[  1.38648301e-03,8.26692582e-03,1.20482313e-02],[  8.38762247e-05,9.58768066e-03,3.18903965e-03],[  9.94132918e-05,1.06267623e-03,6.49315435e-03],[  9.95764539e-03,3.57657737e-02,1.26179014e-02],[  1.25210929e-03,8.59735215e-04,4.20124326e-04],[  6.42175897e-03,5.01250179e-03,4.10783492e-03]])
总结

以上是内存溢出为你收集整理的python – 在DataFrame中乘以多个列全部内容,希望文章能够帮你解决python – 在DataFrame中乘以多个列所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1197300.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存