我有以下数据:
Id | PrimaryName | SecondaryName | Value
---+-------------+---------------+-------
0 | PN0 | SN0 | 3
1 | PN0 | SN1 | 5
2 | PN0 | SN2 | 6
3 | PN1 | SN3 | 5
4 | PN1 | SN4 | 6
5 | PN1 | SN5 | 7
6 | PN2 | SN6 | 1
7 | PN2 | SN7 | 2
8 | PN2 | SN8 | 3
实际上,它类似于一个键-值对,其中SecondaryName
作为键,Value
作为,hm,value,带有附加列PrimaryName
。
我的任务是,通过只查看每个PrimaryName
的最大值的两个条目,来确定两个最大的PrimaryName
例如,对于PN0
,两个最大值是5和6,对于PN1
是6和7,对于{PrimaryName
是PN0
,得分为11,而{
理想的结果只是PrimaryName
s=>;['PN1', 'PN0']
像一个很容易回答问题的人:
^{pr2}$但现在我不得不用Python,特别是pandas来重复。在
到目前为止,我只想到了一个问题的以下部分:
df.groupby('PrimaryName')[['PrimaryName', 'Value']]
我怀疑,要像我在这条C#行g.OrderByDescending(e => e.Value).Take(2).Sum(e => e.Value)
中所做的那样执行计算,我必须用一个临时列定义一个新的dataframe,但我不确定具体如何定义。在
有人能帮我吗?在
实际上这个问题还有一点。这项任务是熊猫课程的一部分,而且,从groupby
是下周的主题这一事实来看,我可能走错了路,或者至少我错过了一些简单明了的东西。在
你可以的
细节
^{pr2}$使用双^{} -首先获取
2
顶部值,然后sum
它们,然后再使用另一个前2个索引值:详细信息:
^{pr2}$或者:
相关问题 更多 >
编程相关推荐