我有以下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
我需要计算mean
的{{1}}价格和dis < 1.0
的单独价格。
我试图创建一个遮罩功能:
dis > 1.0
以为我收到以下错误:
属性错误:(&#34;&#39; Float64Index&#39;对象没有属性&#39;介于&#39;&#34;)。
答案 0 :(得分:2)
您可以使用布尔比较器:
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()
答案 1 :(得分:0)
最简单的解决方案是
df['price_low']=df.ix[df.reset_index()['dis'] < 1,'price']
df['price_high']=df.ix[df.reset_index()['dis'] > 1, 'price']
df.price_low.mean()
df.price_high.mean()
答案 2 :(得分:0)