Change the order of columns in a Python Pandas DataFrame
The Problem
How can I change the order of columns in a Python Pandas DataFrame?
The Solution
Pandas allows us to change the order of columns in a DataFrame by passing in a reordered list of column names:
import pandas
data = {
"Product": ["Apple", "Orange", "Pear"],
"Selling Price": [2, 3, 4],
"Cost Price": [1, 2, 3],
}
df = pandas.DataFrame(data)
print(df)
# output:
# Product Selling Price Cost Price
# 0 Apple 2 1
# 1 Orange 3 2
# 2 Pear 4 3
df = df[["Product", "Cost Price", "Selling Price"]]
print(df)
# output:
# Product Cost Price Selling Price
# 0 Apple 1 2
# 1 Orange 2 3
# 2 Pear 3 4
In some cases, we may want to reorder columns programmatically rather than manually. We can do this by casting df.columns.values to a list and using standard list methods on it before passing it back to df[]. For example, we could use the following code to programmatically perform the same reordering as above:
import pandas
data = {
"Product": ["Apple", "Orange", "Pear"],
"Selling Price": [2, 3, 4],
"Cost Price": [1, 2, 3],
}
df = pandas.DataFrame(data)
print(df)
# output:
# Product Selling Price Cost Price
# 0 Apple 2 1
# 1 Orange 3 2
# 2 Pear 4 3
column_names = list(df.columns.values) # will be ["Product", "Selling Price", "Cost Price"]
column_names.insert(1, column_names[-1]) # insert last element of list at index 1
column_names.pop() # remove last element of list
df = df[column_names]
print(df)
# output:
# Product Cost Price Selling Price
# 0 Apple 1 2
# 1 Orange 2 3
# 2 Pear 3 4
We could also use this technique to sort our columns alphabetically, using list.sort.
import pandas
data = {
"Product": ["Apple", "Orange", "Pear"],
"Selling Price": [2, 3, 4],
"Cost Price": [1, 2, 3],
}
df = pandas.DataFrame(data)
print(df)
# output:
# Product Selling Price Cost Price
# 0 Apple 2 1
# 1 Orange 3 2
# 2 Pear 4 3
column_names = list(df.columns.values) # will be ["Product", "Selling Price", "Cost Price"]
column_names.sort() # sort names alphabetically
df = df[column_names]
print(df)
# output:
# Cost Price Product Selling Price
# 0 1 Apple 2
# 1 2 Orange 3
# 2 3 Pear 4
Considered "not bad" by 4 million developers and more than 150,000 organizations worldwide, Sentry provides code-level observability to many of the world's best-known companies like Disney, Peloton, Cloudflare, Eventbrite, Slack, Supercell, and Rockstar Games. Each month we process billions of exceptions from the most popular products on the internet.