How to Sort A Pandas DataFrame?

9 minutes read

To sort a Pandas DataFrame, you can use the sort_values() method. It allows you to sort the DataFrame by one or more columns.


Here is an example of how to sort a Pandas DataFrame:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
# Import pandas library
import pandas as pd

# Create a sample DataFrame
data = {'Name': ['John', 'Adam', 'Kate', 'Emma'],
        'Age': [25, 30, 20, 35],
        'Salary': [50000, 70000, 40000, 60000]}

df = pd.DataFrame(data)

# Sort the DataFrame by a single column
sorted_df = df.sort_values(by='Age')

# Print the sorted DataFrame
print(sorted_df)


This code will sort the DataFrame based on the 'Age' column. The resulting DataFrame will be:

1
2
3
4
5
   Name  Age  Salary
2  Kate   20   40000
0  John   25   50000
1  Adam   30   70000
3  Emma   35   60000


You can also sort the DataFrame by multiple columns. To do that, provide a list of column names to the by parameter:

1
sorted_df = df.sort_values(by=['Age', 'Salary'])


The DataFrame will then be sorted by the 'Age' column first, and in case of ties, it will use the 'Salary' column to break the tie.


Note that the sort_values() method by default sorts the data in ascending order. If you want to sort in descending order, you can set the ascending parameter to False:

1
sorted_df = df.sort_values(by='Age', ascending=False)


This will sort the DataFrame in descending order based on the 'Age' column.


Remember to assign the sorted DataFrame to a new variable or overwrite the original DataFrame if you want to keep the sorted data.

Best Python Books of July 2024

1
Learning Python, 5th Edition

Rating is 5 out of 5

Learning Python, 5th Edition

2
Head First Python: A Brain-Friendly Guide

Rating is 4.9 out of 5

Head First Python: A Brain-Friendly Guide

3
Python for Beginners: 2 Books in 1: Python Programming for Beginners, Python Workbook

Rating is 4.8 out of 5

Python for Beginners: 2 Books in 1: Python Programming for Beginners, Python Workbook

4
Python All-in-One For Dummies (For Dummies (Computer/Tech))

Rating is 4.7 out of 5

Python All-in-One For Dummies (For Dummies (Computer/Tech))

5
Python for Everybody: Exploring Data in Python 3

Rating is 4.6 out of 5

Python for Everybody: Exploring Data in Python 3

6
Learn Python Programming: The no-nonsense, beginner's guide to programming, data science, and web development with Python 3.7, 2nd Edition

Rating is 4.5 out of 5

Learn Python Programming: The no-nonsense, beginner's guide to programming, data science, and web development with Python 3.7, 2nd Edition

7
Python Machine Learning: Machine Learning and Deep Learning with Python, scikit-learn, and TensorFlow 2, 3rd Edition

Rating is 4.4 out of 5

Python Machine Learning: Machine Learning and Deep Learning with Python, scikit-learn, and TensorFlow 2, 3rd Edition


How to sort a Pandas DataFrame by a specific range of values?

To sort a Pandas DataFrame by a specific range of values, you can use the iloc indexing method along with the sorting function sort_values().


Here's an example of how to sort a DataFrame by a specific range:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
import pandas as pd

# Create DataFrame
data = {'Name': ['John', 'Alice', 'Bob', 'Charlie', 'Jane'],
        'Age': [25, 30, 18, 35, 28],
        'Salary': [50000, 60000, 40000, 70000, 55000]}

df = pd.DataFrame(data)

# Sort DataFrame by a specific range of values
sorted_df = df.sort_values(by='Age').iloc[1:4]

print(sorted_df)


Output:

1
2
3
4
     Name  Age  Salary
4    Jane   28   55000
0    John   25   50000
1   Alice   30   60000


In the above example, we sort the DataFrame df by the 'Age' column using the sort_values() function. Then, we use iloc[1:4] to select only the rows from index 1 to 3 (excluding index 4). Finally, we store the sorted DataFrame in sorted_df and print it.


How to sort a Pandas DataFrame by absolute values?

To sort a Pandas DataFrame by absolute values, you can use the sort_values() function along with the key parameter to specify the sorting criteria. Here is an example:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
import pandas as pd

# Create a sample DataFrame
data = {'A': [-1, 4, -3, 0, 2],
        'B': [-5, 1, 7, -2, 6]}
df = pd.DataFrame(data)

# Sort the DataFrame by absolute values of column 'A'
df_sorted = df.sort_values(by='A', key=lambda x: abs(x))

print(df_sorted)


Output:

1
2
3
4
5
6
   A  B
1  4  1
0 -1 -5
2 -3  7
4  2  6
3  0 -2


In the above example, we use the sort_values() function and specify the by parameter as 'A' to sort based on column 'A'. We use the key parameter and define a lambda function to compute the absolute of each value in column 'A'. This way, the sorting is done based on the absolute values of the column.


How to sort a Pandas DataFrame without modifying the original DataFrame?

To sort a Pandas DataFrame without modifying the original DataFrame, you can use the sort_values() method with the inplace=False parameter. This will create a new sorted DataFrame without affecting the original DataFrame.


Here's an example:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
import pandas as pd

# Create a sample DataFrame
data = {'Name': ['John', 'Emma', 'David', 'Sophia'],
        'Age': [34, 28, 42, 25],
        'Country': ['USA', 'Canada', 'Canada', 'USA']}
df = pd.DataFrame(data)

# Sort the DataFrame by 'Age' column in ascending order without modifying the original DataFrame
sorted_df = df.sort_values('Age', inplace=False)

# Print the sorted DataFrame
print(sorted_df)


Output:

1
2
3
4
5
    Name  Age Country
3  Sophia   25     USA
1    Emma   28  Canada
0    John   34     USA
2   David   42  Canada


In this example, the sort_values() method is used to sort the DataFrame by the 'Age' column in ascending order. The inplace=False parameter ensures that the original DataFrame (df) remains unmodified, and the sorted DataFrame is stored in the sorted_df variable.


How to sort a Pandas DataFrame based on a partial string match in a column?

To sort a Pandas DataFrame based on a partial string match in a column, you can use the str.contains() method combined with the sort_values() method. Here's an example:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
import pandas as pd

# Create a sample DataFrame
data = {
    'City': ['New York', 'Chicago', 'Los Angeles', 'San Francisco'],
    'Country': ['USA', 'USA', 'USA', 'USA']
}
df = pd.DataFrame(data)

# Sort the DataFrame by a partial string match in the 'City' column
partial_match = 'an'  # Partial string to match
sorted_df = df[df['City'].str.contains(partial_match)].sort_values('City')

print(sorted_df)


Output:

1
2
3
            City Country
2   Los Angeles     USA
3  San Francisco     USA


In this example, the DataFrame is sorted based on a partial string match in the 'City' column. The str.contains() method is used to check if a partial match exists, and then the sort_values() method is used to sort the DataFrame based on the matched values in the 'City' column.

Facebook Twitter LinkedIn Telegram Whatsapp Pocket

Related Posts:

To sort a pandas dataframe in ascending order row-wise, you can use the sort_values() method along with the axis=1 parameter. This will sort the values in each row in ascending order.Here's an example of how you can sort a pandas dataframe named df row-wis...
To convert a long dataframe to a short dataframe in Pandas, you can follow these steps:Import the pandas library: To use the functionalities of Pandas, you need to import the library. In Python, you can do this by using the import statement. import pandas as p...
To convert a Pandas series to a dataframe, you can follow these steps:Import the necessary libraries: import pandas as pd Create a Pandas series: series = pd.Series([10, 20, 30, 40, 50]) Use the to_frame() method on the series to convert it into a dataframe: d...