【发布时间】:2015-05-11 20:58:02
【问题描述】:
如果这个问题是基本的,我深表歉意,但我已经浏览了文档,但我无法弄清楚处理这个问题的简单规范方法是什么,尽管这可能是因为我对 pandas 很陌生。
我有一个 DataFrame df 代表一系列系统的scores 的时间序列数据(其中时间由steps 测量),由超参数paramA 和paramB 参数化。
数据的合成样本如下:
| paramA | paramB | score | step |
----------------------------------
| A | c | .8 | 10 |
| B | e | .2 | 10 |
| A | f | .1 | 40 |
| C | c | .9 | 10 |
| B | e | .3 | 20 |
| B | c | .3 | 10 |
| A | c | .7 | 20 |
| C | f | .4 | 60 |
| ... | ... | ... | ... |
我想做以下事情:
1。查找得分最高的模型
对于每个模型(即数据集中每对可能的超参数),找到得分最高的行。我目前正在这样做:
df.groupby([df.paramA, df.paramB]).score.max()
2。提取得分最高者的时间序列
我现在想要获取我在上一步中获得最大值的顶级 k 模型的时间序列。
显然我可以在上一步中手动查找得分最高的模型,使用k 单独的查询获取k 数据帧,但这感觉很慢而且不优雅。我假设有一种更聪明的方法可以做到这一点。
再次,如果这很简单,我们深表歉意,但任何以聪明的方式解决这个问题的帮助,而不是我目前想到的蛮力方式,将不胜感激。
【问题讨论】: