How to Sort Pandas DataFrame

You can sort Pandas DataFrame with the following code. I highly recommend you This book to learn Python. In this article, You will see 6 examples to sort DataFrame.

  1. Sort Pandas DataFrame in an ascending order
  2. Sort DataFrame in a descending order
  3. Sort DataFrame by multiple columns
  4. Sort DataFrame by index
  5. Sort DataFrame and put NAs first
  6. Sort DataFrame by date

Step 1: Install Pandas Library

Install the Pandas library using this code, if it is not installed.

pip install pandas

Example 1: Sort DataFrame in an ascending order

# Import the Pandas library as pd
import pandas as pd

# Initialize a dictionary
dict = {'Companies':['Amazon', 'Tesla', 'Facebook', 'Google', 'Apple'],
        'Stock':[113, 734, 169, 2316, 141],
       'Founded':[1994, 2003, 2004, 1998, 1976],
       'Worth':[420, 735, 538, 1549, 65]}

# Create DataFrame from dictionary
df = pd.DataFrame(dict)

# Display the DataFrame
print(df)

# Sorting in Ascending Order
df.sort_values(by=['Companies'], inplace=True)

# Display the DataFrame
print(df)

Output:

  Companies  Stock  Founded  Worth
0    Amazon    113     1994    420
1     Tesla    734     2003    735
2  Facebook    169     2004    538
3    Google   2316     1998   1549
4     Apple    141     1976     65
  Companies  Stock  Founded  Worth
0    Amazon    113     1994    420
4     Apple    141     1976     65
2  Facebook    169     2004    538
3    Google   2316     1998   1549
1     Tesla    734     2003    735

Example 2: Sort DataFrame in a descending order

# Import the Pandas library as pd
import pandas as pd

# Initialize a dictionary
dict = {'Companies':['Amazon', 'Tesla', 'Facebook', 'Google', 'Apple'],
        'Stock':[113, 734, 169, 2316, 141],
       'Founded':[1994, 2003, 2004, 1998, 1976],
       'Worth':[420, 735, 538, 1549, 65]}

# Create DataFrame from dictionary
df = pd.DataFrame(dict)

# Display the DataFrame
print(df)

# Sorting in Ascending Order
df.sort_values(by=['Worth'], inplace=True, ascending=False)

# Display the DataFrame
print(df)

Output:

  Companies  Stock  Founded  Worth
0    Amazon    113     1994    420
1     Tesla    734     2003    735
2  Facebook    169     2004    538
3    Google   2316     1998   1549
4     Apple    141     1976     65
  Companies  Stock  Founded  Worth
3    Google   2316     1998   1549
1     Tesla    734     2003    735
2  Facebook    169     2004    538
0    Amazon    113     1994    420
4     Apple    141     1976     65

Example 3: Sort DataFrame by multiple columns

# Import the Pandas library as pd
import pandas as pd

# Initialize a dictionary
dict = {'Companies':['Amazon', 'Tesla', 'Facebook', 'Google', 'A'],
        'Stock':[113, 734, 169, 2316, 141],
       'Founded':[1994, 2003, 2004, 1998, 1976],
       'Worth':[420, 735, 538, 1549, 65]}

# Create DataFrame from dictionary
df = pd.DataFrame(dict)

# Display the DataFrame
print(df)

# Sort by multiple columns
df.sort_values(by=['Companies','Founded'], inplace=True)

# Display the DataFrame
print(df)

Output:

  Companies  Stock  Founded  Worth
0    Amazon    113     1994    420
1     Tesla    734     2003    735
2  Facebook    169     2004    538
3    Google   2316     1998   1549
4         A    141     1976     65
  Companies  Stock  Founded  Worth
4         A    141     1976     65
0    Amazon    113     1994    420
2  Facebook    169     2004    538
3    Google   2316     1998   1549
1     Tesla    734     2003    735

Example 4: Sort DataFrame by index

dict = {'Companies':['Amazon', 'Tesla', 'Facebook', 'Google', 'A'],
        'Stock':[113, 734, 169, 2316, 141],
       'Founded':[1994, 2003, 2004, 1998, 1976],
       'Worth':[420, 735, 538, 1549, 65]}

df = pd.DataFrame(dict, index=[50, 39, 14, 5, 25])

# Display the DataFrame
print(df)

# Sort the Pandas DataFrame by Index
df1 = df.sort_index()

# Display the DataFrame
print(df1)

Output:

   Companies  Stock  Founded  Worth
50    Amazon    113     1994    420
39     Tesla    734     2003    735
14  Facebook    169     2004    538
5     Google   2316     1998   1549
25         A    141     1976     65
   Companies  Stock  Founded  Worth
5     Google   2316     1998   1549
14  Facebook    169     2004    538
25         A    141     1976     65
39     Tesla    734     2003    735
50    Amazon    113     1994    420

Example 5: Sort DataFrame and put NAs first

import numpy as np

# Initialize a list of list
a = [[5, 8, 10, 49, 12],
     [20, 25, 6, 13, 19],
     [23, 43, 51, np.nan, 98],
     [10, 15, 20, 30, 40]]

# Create DataFrame
df = pd.DataFrame(a, columns=["A", "B", "C", "D", "E"])

# Display the DataFrame
print(df)

# Sort the DataFrame and put NA first 
df1 = df.sort_values(by='D', na_position='first')

# Display the DataFrame
print(df1)

Output:

    A   B   C     D   E
0   5   8  10  49.0  12
1  20  25   6  13.0  19
2  23  43  51   NaN  98
3  10  15  20  30.0  40
    A   B   C     D   E
2  23  43  51   NaN  98
1  20  25   6  13.0  19
3  10  15  20  30.0  40
0   5   8  10  49.0  12

Example 6: Sort DataFrame by date

dict = {'Companies':['Amazon', 'Tesla', 'Facebook', 'Google', 'Apple'],
        'Stock':[113, 734, 169, 2316, 141],
       'Date':['1994-03-27', '2003-04-14', '2004-07-21', '1998-05-19', '1976-02-26'],
       'Worth':[420, 735, 538, 1549, 65]}
                                   
df = pd.DataFrame(dict)

# Display the DataFrame
print(df)

# Sort the Pandas DataFrame by Date
df1 = df.sort_values(by='Date')

# Display the DataFrame
print(df1)

Output:

  Companies  Stock        Date  Worth
0    Amazon    113  1994-03-27    420
1     Tesla    734  2003-04-14    735
2  Facebook    169  2004-07-21    538
3    Google   2316  1998-05-19   1549
4     Apple    141  1976-02-26     65
  Companies  Stock        Date  Worth
4     Apple    141  1976-02-26     65
0    Amazon    113  1994-03-27    420
3    Google   2316  1998-05-19   1549
1     Tesla    734  2003-04-14    735
2  Facebook    169  2004-07-21    538

Free Learning Resources

Leave a Comment

Your email address will not be published.