dat*_*ana 6 python numpy scipy pandas
我有这个数据框作为例子:
Col1 Col2 Col3 Col4
1 2 3 2.2
Run Code Online (Sandbox Code Playgroud)
我想添加一个名为'Gmean'的第4列,用于计算每行前3列的几何平均值.
怎么能完成它?
谢谢!
一种方法是Scipy's geometric mean function-
from scipy.stats.mstats import gmean
df['Gmean'] = gmean(df.iloc[:,:3],axis=1)
Run Code Online (Sandbox Code Playgroud)
与formula of geometric mean自身的另一种方式-
df['Gmean'] = np.power(df.iloc[:,:3].prod(axis=1),1.0/3)
Run Code Online (Sandbox Code Playgroud)
如果有完全3列,只需使用df而不是df.iloc[:,:3].此外,如果您正在寻找性能,您可能希望使用df.values或使用基础数组数据df.iloc[:,:3].values.