python - Calculating mean value in DataFrame using a mask -


i have following dataframe:

   data            price1            price2               price3 sys dis 27  0.8           43.89          83.06            33.75     0.9           2.56           12.19            2.48     1.0           42.28          1.87             1.93     1.2           22.70          1.41             3.64     1.4           20.38          1.36             2.02 28  0.8           22.024         35.47            16.96     0.9           2.69           36.41            19.33     1.0           59.30          8.90             11.41     1.2           25.08          4.55             11.99     1.4           26.85          3.30             7.37     1.6           437.82         3.50             5.65     1.8           55.21          2.91             1.84     2.0           32.54          4.68             5.03     2.5           52.91          5.42             6.58 

i need calculate mean prices dis < 1.0 , seperately dis > 1.0.

i've tried create mask function:

def mask(df):         df.loc[df.index.get_level_values('dis').between(0.8,1.0), 'price1'].mean()         df.loc[df.index.get_level_values('dis').between(1.0,2.6), 'price1'].mean()          return df  print (df_new.ix[:,'price1']).apply(mask) 

thought getting following error :

attributeerror: ("'float64index' object has no attribute 'between'").

you use boolean comparators:

mean_low = df.loc[(df.index.get_level_values('dis') < 1.0), 'price1'].mean() mean_high = df.loc[(df.index.get_level_values('dis') > 1.0), 'price1'].mean() 

Comments