首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >群熊猫中的条件计数

群熊猫中的条件计数
EN

Stack Overflow用户
提问于 2018-06-04 14:41:19
回答 2查看 5.8K关注 0票数 2

我有一个数据,它有股票代码和模型精确的不同日期,如下所示:

代码语言:javascript
复制
ZAYO  20170228  0.203997
ZAYO  20170531  0.180037
ZAYO  20170831  0.110623
ZBH   20170131  0.130060
ZBH   20170430  0.115384
ZBH   20170731  0.065990
AAAP  20170331  1.075765
AAAP  20170630  1.119365
AAAP  20170930  0.223602
AAL   20170131  0.338255
AAL   20170430  0.386442
AAL   20170731  0.171351

我想要创建一个摘要数据框架,其中每行包含代码名、平均精度、精度超过20次的百分比、精度超过50%的次数。

我使用

代码语言:javascript
复制
dfGrouped = df.groupby(['tickers'])
dfGrouped.Accuracy.mean()

要获得平均准确度,但不确定有一种干净的方法来计算某一特定滴答器的准确度超过20%、50%的次数。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-06-04 14:48:45

groupby.agg与计算字典一起使用:

代码语言:javascript
复制
from collections import OrderedDict

df.columns=['ticker', 'date', 'accuracy']

groupers = OrderedDict([('mean', np.mean),
                        ('>_0.20_pct', lambda x: (x > 0.20).sum()/len(x)),
                        ('>_0.50_pct', lambda x: (x > 0.50).sum()/len(x)),
                        ('>_0.70_pct', lambda x: (x > 0.70).sum()/len(x))])

res = df.groupby('ticker')['accuracy'].agg(groupers)

print(res)

            mean  >_0.20_pct  >_0.50_pct  >_0.70_pct
ticker                                              
AAAP    0.806244    1.000000    0.666667    0.666667
AAL     0.298683    0.666667    0.000000    0.000000
ZAYO    0.164886    0.333333    0.000000    0.000000
ZBH     0.103811    0.000000    0.000000    0.000000
票数 7
EN

Stack Overflow用户

发布于 2018-06-04 14:45:13

试试这个:

代码语言:javascript
复制
dfGrouped.where(dfGrouped.Accuracy < 0.20).Accuracy.count()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50683137

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档