【发布时间】:2018-04-27 02:32:20
【问题描述】:
我有一个看起来像这样的数据框:
device_id s2 s41 s47 s14
30 0 0 0 0.003
125 0 0 0 0
32 0 0 0 0
45 0 0 0 0
目标是从每行中获取 3 个最高的 s,如果有匹配项,则选择最大索引。例如,对于第一行,s2、s41 和 s47 之间存在匹配,因此将选择 s47 和 s41。因此,第 1 行的选择将是 s14、s47 和 s41。有超过 200 万条记录和超过 250 条记录,因此我需要一种有效的方法来做到这一点。我尝试过使用 iterrows,然后对每一行进行排序,但速度很慢,所有数据都需要一个多小时。
最终目标是在字典中搜索 s (s14, s47, s41),其中这些值是键,并从那里获取适当的值。
有人可以帮助我有效地做到这一点。 谢谢
【问题讨论】:
标签: python pandas sorting dictionary