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

2024-05-12 22:40:51 发布

您现在位置:Python中文网/ 问答频道 /正文

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

例如,使用

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

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

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

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


Tags: 数据函数dataframepandas编码dfnprandom
1条回答
网友
1楼 · 发布于 2024-05-12 22:40:51

您可以使用^{}

>>> 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

你也可以applynp.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

相关问题 更多 >