对Pandas数据帧进行排序并打印最高n值

时间:2013-06-06 09:30:02

标签: pandas sorting dataframe max

我有一个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()

3 个答案:

答案 0 :(得分:27)

我认为您可以使用nlargestpandas版本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)

注意: sort已被弃用 - 请改用<{1}}

sort降序使用sort_values

ascending=False

要获取前10个值,请使用.head(10)

答案 2 :(得分:2)

df['Bytes'] = df['Bytes'].astype('int')
print df.sort('Bytes', ascending=False).head(10)[['Bytes', 'Client-IP']]

我可以在Andy Hayden的帮助下使用上面的代码来解决它。 :d