在行上应用的几何平均值

时间:2017-02-24 10:42:01

标签: python pandas numpy scipy

我以此数据框为例:

Col1       Col2       Col3       Col4
   1          2          3        2.2

我想添加一个名为'Gmean'的第4列,用于计算每行前3列的几何平均值。

如何完成它?

谢谢!

2 个答案:

答案 0 :(得分:6)

一种方法是使用this question's answer -

from scipy.stats.mstats import gmean

df['Gmean'] = gmean(df.iloc[:,:3],axis=1)

Scipy's geometric mean function本身的另一种方式 -

df['Gmean'] = np.power(df.iloc[:,:3].prod(axis=1),1.0/3)

如果确实有3列,请使用df代替df.iloc[:,:3]。此外,如果您正在寻找性能,您可能希望使用df.valuesdf.iloc[:,:3].values处理基础数组数据。

答案 1 :(得分:4)

pom.xml