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
Post a Comment