我有一个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()
答案 0 :(得分:27)
我认为您可以使用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
答案 1 :(得分:22)
答案 2 :(得分:2)
df['Bytes'] = df['Bytes'].astype('int')
print df.sort('Bytes', ascending=False).head(10)[['Bytes', 'Client-IP']]
我可以在Andy Hayden的帮助下使用上面的代码来解决它。 :d