熊猫的高效STAR选择

基思

有一种称为STAR的选择类型,它是“分数然后自动径流”的首字母缩写。这在许多算法方法中都使用过,但是典型的例子是投票。在熊猫中,这用于选择该指标下的单个列。标准的“得分”选择是选择数据框的总和最高的列。这可以简单地通过

df.sum().idxmax()

做STAR选择的最有效的pythonic方法是什么?该方法有效,但首先将两列的总和最高,然后将获胜者作为该两列之间具有较高价值的列。我似乎无法以一种简洁的方式来编写它。

安迪(Andy L.)

这是我的看法

样品 df

Out[1378]:
   A  B  C  D
0  5  5  1  5
1  0  1  5  5
2  3  3  1  3
3  4  5  0  4
4  5  5  1  1

第1步:使用sumnlargest用于和片列Score step

df_tops = df[df.sum().nlargest(2, keep='all').index]

Out[594]:
   B  D
0  5  5
1  1  5
2  3  3
3  5  4
4  5  1

第2步:比较df_topsagainsmaxdf_tops创建布尔结果。终于,sum并调用idxmax就可以了

finalist = df_tops.eq(df_tops.max(1), axis=0).sum().idxmax()    

Out[608]: 'B'    

或者,你可以使用idxmaxmode进行step 2这将返回一系列顶列名称

finalist = df_tops.idxmax(1).mode()

Out[621]:
0    B
dtype: object

在获得顶列之后,将其切成薄片

df[finalist]

Out[623]:
   B
0  5
1  1
2  3
3  5
4  5

注意:如果各runner-up列的总和相同,则步骤2仅选择一列。如果你希望它挑两个同一等级/票亚军列,你需要使用nlargestindex替代idxmax,输出将是数组

finalist = df_tops.eq(df_tops.max(1), axis=0).sum().nlargest(1, keep='all').index.values

Out[615]: array(['B'], dtype=object)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

熊猫高效VWAP计算

来自分类Dev

熊猫高效重采样

来自分类Dev

最高效的选择方法

来自分类Dev

高效的查询熊猫数据集

来自分类Dev

高效的熊猫数据框插入

来自分类Dev

高效的“窗口选择”数组块?

来自分类Dev

高效转换大熊猫DataFrame

来自分类Dev

分组数据框熊猫的高效操作

来自分类Dev

在Python中对熊猫进行高效的groupby()编码

来自分类Dev

高效查询以选择以前未发行的图书

来自分类Dev

SQLite-高效的选择计数查询

来自分类Dev

高效选择按列分组的最新行

来自分类Dev

以内存高效的方式迭代添加熊猫数据帧

来自分类Dev

查找跨不同熊猫数据框的谐波均值的高效函数

来自分类Dev

快速高效的熊猫Groupby sum / mean,无聚合

来自分类Dev

基于优先级的高效/ Python方式过滤熊猫DataFrame

来自分类Dev

熊猫:将密集表高效向量化为稀疏形式

来自分类Dev

高效地将大熊猫数据写入不同的文件

来自分类Dev

高效地计算熊猫窗口期间的创建率

来自分类Dev

高效计算大熊猫的滚动时间差

来自分类Dev

熊猫数据框(选择)

来自分类Dev

特定年份的熊猫选择

来自分类Dev

大熊猫的选择

来自分类Dev

熊猫面板布尔选择

来自分类Dev

熊猫选择列错误

来自分类Dev

熊猫:选择平衡样本

来自分类Dev

熊猫的Sklearn功能选择

来自分类Dev

熊猫数据框选择

来自分类Dev

熊猫选择特定的群体