I have a pandas data frame and I want to sort column('Bytes') in Descending order and print highest 10 values and its related "Client IP" column value. Suppose following is a part of my dataframe. I have many different methods and failed?
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    Following prints only the raw which has the highest value.
print df['Bytes'].argmax() 
                To sort a dataframe based on the values of a column but in descending order so that the largest values of the column are at the top, we can use the argument ascending=False.
In order to sort the data frame in pandas, function sort_values() is used. Pandas sort_values() can sort the data frame in Ascending or Descending order.
I think you can use nlargest (New in pandas version 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 
                        Note: sort is deprecated - use sort_values instead
To sort descending use ascending=False:
In [6]: df.sort('Bytes', ascending=False) Out[6]:    0  Bytes      Client Ip 1  1   2000  192.168.10.12 0  0   1000   192.168.10.2 2  2    500   192.168.10.4 3  3    159  192.168.10.56   To take the first 10 values use .head(10).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With