是否有任何 pythonic 方法(无需迭代)在每个单元格值中应用数学函数,然后在 Pandas 中添加行总和?

Is there any pythonic way (without iteration) to apply a math function in each cell values and then add the row sum in Pandas?

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

column1 column2 column3 column(n) result
2.3 3.4 4.5 ... ?
1 2 3 ... ?
... ... ... ... ?

对于两行(在实际的 m 行中,因此需要针对任意行数的解决方案)我想要 result 列中每一行的标量值,它将给出产生一个应用以下公式的新列:

equation

我想不出一个简洁的方法来对每个单元格进行 pandas without 迭代;我想在一行中完成(pythonic 方式)。非常感谢任何帮助,谢谢。

我认为这应该可行:

df['result'] = df.mul(np.log(df)).sum(axis=1) / np.sqrt(len(df.columns))

输出:

>>> df
   column1  column2  column3    result
0      2.3      3.4      4.5  7.415992
1      1.0      2.0      3.0  2.703230