python - 将 Pandas 数据框中的所有列相乘

标签 python python-2.7 numpy scipy pandas

是否可以将 Pandas.DataFrame 中的所有列相乘以获得 DataFrame 中每一行的单个值?

例如,使用

df = pd.DataFrame(np.random.randn(5,3)*10)

我想要一个新的 DataFrame df2 其中 df2.ix[x,0] 的值为 df.ix [x,0] * df.ix[x,1] * df.ix[x,2]

但是我不想对此进行硬编码,我该如何使用循环来实现这一点?

我找到了一个函数 df.mul(series, axis=1) 但无法找到一种方法来使用它。

最佳答案

你可以使用 DataFrame.prod() :

>>> df = pd.DataFrame(np.random.randint(1, 10, (5, 3)))
>>> df
   0  1  2
0  7  7  5
1  1  8  6
2  4  8  4
3  2  9  5
4  3  8  7
>>> df.prod(axis=1)
0    245
1     48
2    128
3     90
4    168
dtype: int64

您也可以apply np.prod,这是我最初所做的,但通常情况下直接方法更快。

>>> df = pd.DataFrame(np.random.randint(1, 10, (5, 3)))
>>> df
   0  1  2
0  9  3  3
1  8  5  4
2  3  6  7
3  9  8  5
4  7  1  2
>>> df.apply(np.prod, axis=1)
0     81
1    160
2    126
3    360
4     14
dtype: int64

关于python - 将 Pandas 数据框中的所有列相乘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16423736/

相关文章:

python - 如何修复类型 "object of type ' CategoricalDtype' has no len()"的错误?

java - 将路径图像从java发送到python

python - 如何从字符串中删除所有非字母(所有语言)和非数字字符?

python - 如何在python中压缩文件夹和文件?

python - 通过从 PyQt4 中使用 QSplitter() 设置的按钮调用来删除小部件

python - 读取 XML 文件并在 Python 中获取其属性值

python - 使用 sqlalchemy 在 sqlite 数据库中保存 numpy 整数

c++ - Eigen 张量广播语法

numpy - ValueError : Cannot feed value of shape (128, 28, 28) 对于张量 'Placeholder:0' ,其形状为 '(?, 784)'

python - Scikit-learn - 多项逻辑回归的错误输入形状错误