我有一个pandas数据框,我想按降序排序列('字节')并打印最高10个值及其相关的“客户端IP”列值。假设以下是我的数据帧的一部分。我有很多不同的方法而且失败了?
0 Bytes Client Ip
0 1000 192.168.10.2
1 2000 192.168.10.12
2 500 192.168.10.4
3 159 192.168.10.56
以下仅打印具有最高值的原始值。
print df['Bytes'].argmax()
我想你可以使用nlargest
(pandas
版本0.17.0
中的新功能):
print df
0 Bytes Client Ip
0 1 1 1000 192.168.10.2
1 0 0 2000 192.168.10.12
2 2 2 500 192.168.10.4
3 3 3 159 192.168.10.56
print df.nlargest(3, 'Client')
0 Bytes Client Ip
1 0 0 2000 192.168.10.12
0 1 1 1000 192.168.10.2
2 2 2 500 192.168.10.4
df['Bytes'] = df['Bytes'].astype('int')
print df.sort('Bytes', ascending=False).head(10)[['Bytes', 'Client-IP']]
我可以在Andy Hayden的帮助下使用上面的代码来解决它。 :d
df[['Bytes', 'Client Ip']].sort_values('Bytes', ascending=False).nlargest(10, 'Bytes')
这应该可以为您提供所需的一切1)排序字节2)返回最大的10字节值