python-2.7 - 如何在 pandas DataFrame 中选择性地乘法或添加列?

标签 python-2.7 lambda pandas generator dataframe

我有一个如下所示的数据框:

Sample    P1    P2    P3
A         0.25  0.5   0.25
B         0.25  0     0.25
C         0.25  0.25  0

我希望能够有选择地仅将 P 列相乘(如果它们不等于零),并输出第五列相乘值。它应该如下所示:

Sample    P1    P2    P3    Multiplied
A         0.25  0.5   0.25  0.03125
B         0.25  0     0.25  0.0625
C         0.25  0.25  0     0.0625

我不太确定如何为此编写代码。对此有什么建议吗?

最佳答案

只是为了抛出一个替代方案(您可以使用 prod DataFrame 方法):

In [11]: df['multiplied'] = df[df != 0].prod(axis=1)

In [12]: df
Out[12]: 
          P1    P2    P3  multiplied
Sample                              
A       0.25  0.50  0.25     0.03125
B       0.25  0.00  0.25     0.06250
C       0.25  0.25  0.00     0.06250

关于python-2.7 - 如何在 pandas DataFrame 中选择性地乘法或添加列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18003214/

相关文章:

python - 在局部函数中访问全局函数的变量

python - wxPython 中的 sendMessage() takes at most 3 arguments (4 given) 错误

java - groupingBy 到集合 Java8

Java 8 lambda : is automatically-inferred exception a RuntimeException by default?

python - 根据规则对python中的列表进行排序

python-2.7 - 使用 Python 解析包含 & 的 HTML 页面

Java 8 : modify specific element in the stream by using lambda expressions

python - Pandas数据透视表,如何在values属性中放置一系列列

python - 重命名默认ID python

python-3.x - 如何根据其他列查找列值是否被低估或高估?