我有一个熊猫数据帧,我只想要每个设备的前10个count
。我想一个简单的方法是创建一个名为rank
的新列,然后删除任何秩大于10的列。以下是数据:
p_dt device namestr count
0 2020-04-29 windows m_outcome1 207209
1 2020-04-29 windows m_outcome2 56599
2 2020-04-29 windows m_outcome3 2880
3 2020-04-29 windows m_outcome4 2879
4 2020-04-29 windows m_outcome5 2879
... ... ... ... ...
50204 2020-04-29 web gateway wg_outcome1 2
50205 2020-04-29 web gateway wg_outcome2 2
50206 2020-04-29 web gateway wg_outcome3 1
50207 2020-04-29 web gateway wg_outcome4 1
50208 2020-04-29 web gateway wg_outcome5 1
我遇到的问题是,如果count
每个device
有多个相同的数字,那么秩会重复几次
df.groupby('deviceproduct', sort=False)['count'].rank(ascending=False)
0 1.0
1 2.0
2 3.0
3 5.0
4 5.0
...
50204 20.5
50205 20.5
50206 23.0
50207 23.0
50208 23.0
对于相同的数据,我只想:
0 1.0
1 2.0
2 3.0
3 5.0
4 6.0
...
有没有办法做到这一点
您应该考虑在^{} 方法中使用^ {CD1>}。
这将为每个组提供唯一的等级
针对您的数据帧样本进行了测试:
相关问题 更多 >
编程相关推荐