Article Categories
- All Categories
-
Data Structure
-
Networking
-
RDBMS
-
Operating System
-
Java
-
MS Excel
-
iOS
-
HTML
-
CSS
-
Android
-
Python
-
C Programming
-
C++
-
C#
-
MongoDB
-
MySQL
-
Javascript
-
PHP
-
Economics & Finance
Write a program in Python to transpose the index and columns in a given DataFrame
Transposing a DataFrame means swapping its rows and columns. Python provides several methods to transpose DataFrames, from using Pandas built-in methods to implementing custom solutions with list comprehensions or zip operations.
Using DataFrame.transpose() or .T
The most straightforward approach is using Pandas' built-in transpose() method or its shorthand .T property ?
import pandas as pd
data = [[1, 2, 3], [4, 5, 6]]
df = pd.DataFrame(data)
print("Original DataFrame:")
print(df)
print("\nTransposed DataFrame:")
print(df.transpose())
Original DataFrame: 0 1 2 0 1 2 3 1 4 5 6 Transposed DataFrame: 0 1 0 1 4 1 2 5 2 3 6
Using List Comprehension
You can manually transpose using nested list comprehension to iterate through rows and columns ?
import pandas as pd
data = [[1, 2, 3], [4, 5, 6]]
df = pd.DataFrame(data)
print("Original DataFrame:")
print(df)
# Manual transpose using list comprehension
result = [[data[i][j] for i in range(len(data))] for j in range(len(data[0]))]
df_transposed = pd.DataFrame(result)
print("\nTransposed DataFrame:")
print(df_transposed)
Original DataFrame: 0 1 2 0 1 2 3 1 4 5 6 Transposed DataFrame: 0 1 0 1 4 1 2 5 2 3 6
Using zip() Function
The zip() function with unpacking operator * provides an elegant way to transpose data ?
import pandas as pd
data = [[1, 2, 3], [4, 5, 6]]
df = pd.DataFrame(data)
print("Original DataFrame:")
print(df)
# Transpose using zip
result = list(zip(*data))
df_transposed = pd.DataFrame(result)
print("\nTransposed DataFrame:")
print(df_transposed)
Original DataFrame: 0 1 2 0 1 2 3 1 4 5 6 Transposed DataFrame: 0 1 0 1 4 1 2 5 2 3 6
Comparison
| Method | Performance | Readability | Best For |
|---|---|---|---|
df.T / transpose()
|
Fastest | Excellent | Standard DataFrame operations |
| List comprehension | Slower | Moderate | Learning/custom logic |
zip(*data) |
Good | Good | Working with raw data lists |
Conclusion
Use df.T or df.transpose() for efficient DataFrame transposition. Manual methods like list comprehension and zip are useful for understanding the underlying logic or when working with raw data structures.
