One way: Scipy geometric mean function -
from scipy.stats.mstats import gmean df['Gmean'] = gmean(df.iloc[:,:3],axis=1)
Another way with the formula of geometric mean itself is
df['Gmean'] = np.power(df.iloc[:,:3].prod(axis=1),1.0/3)
If there are exactly 3 columns, just use df instead of df.iloc[:,:3] . In addition, if you are looking for performance, you can work with the underlying array data using df.values or df.iloc[:,:3].values .
source share