我有一个包含数值间隔的pandas数据帧(局部放电间隔),例如年龄间隔,以及与之相关的一些值。现在,给定一个年龄,我想在相应的年龄间隔中查找值。在
这样一个数据帧的例子可以得到如下
df = pd.DataFrame({
'age' : [ int(random.random()*20) for x in range(50) ],
'values' : [ random.random() for x in range(50) ]
})
df['Age10bin'] = pd.qcut(df['age'],10)
aggdf = df.groupby('Age10bin').agg({'values' : { 'Avg_values': 'mean', 'Count': 'count'}})
^{pr2}$
现在假设我有一个agex:我想检索包含X的age bin的“Avg_值”
我尝试了以下方法:
aggdf.loc[ (aggdf.Age10bin.left <= X ) & ( X <= aggdf.Age10bin.right), : 'Avg_values'].max()
但它告诉我“'Series'对象没有'left'属性”。我也尝试过不使用.left或.right进行比较,但它告诉我我无法比较标量和范畴。在
首先稍微改变创建
aggdf
的方式,以确保columns
中没有多个索引然后我们使用
^{pr2}$.loc
您只需:
它给您(对于
^{pr2}$random.seed(10)
生成的数据):相关问题 更多 >
编程相关推荐