w3resource

Pandas: Construct a DataFrame using the MultiIndex levels


13. Construct DataFrame Using MultiIndex Levels as Column and Index

Write a Pandas program to construct a DataFrame using the MultiIndex levels as the column and index.

Sample Solution:

Python Code :

import pandas as pd 
import numpy as np
sales_arrays = [['sale1', 'sale1', 'sale2', 'sale2', 'sale3', 'sale3', 'sale4', 'sale4'],
          ['city1', 'city2', 'city1', 'city2', 'city1', 'city2', 'city1', 'city2']]
sales_tuples = list(zip(*sales_arrays))
print("Create a MultiIndex:")
sales_index = pd.MultiIndex.from_tuples(sales_tuples, names=['sale', 'city'])
print(sales_tuples)
print("\nConstruct a Dataframe using the said MultiIndex levels: ")
df = pd.DataFrame(np.random.randn(8, 5), index=sales_index)
print(df)

Sample Output:

Create a MultiIndex:
[('sale1', 'city1'), ('sale1', 'city2'), ('sale2', 'city1'), ('sale2', 'city2'), ('sale3', 'city1'), ('sale3', 'city2'), ('sale4', 'city1'), ('sale4', 'city2')]

Construct a Dataframe using the said MultiIndex levels: 
                    0         1         2         3         4
sale  city                                                   
sale1 city1 -1.020550 -0.809408  0.911425  0.059023  0.495317
      city2 -1.208514  0.039022  0.088428 -0.899280  1.722276
sale2 city1  0.510427 -0.396097 -2.076445  1.080586  1.268495
      city2 -1.158077 -0.892657  1.221519 -0.802645  0.095342
sale3 city1  1.535934  0.432627 -1.307655  0.031096 -0.060850
      city2  0.601156  0.202661 -1.469705 -1.787885  1.285210
sale4 city1  0.455104  0.395752  0.115163  1.188649  0.415450
      city2  0.218054 -0.722397  0.590288 -1.347249 -0.223215

For more Practice: Solve these Related Problems:

  • Write a Pandas program to build a DataFrame with both its rows and columns set from a MultiIndex, then display the DataFrame.
  • Write a Pandas program to convert a MultiIndex DataFrame into a new DataFrame where the index levels become both row and column headers.
  • Write a Pandas program to reshape a MultiIndex DataFrame so that selected levels are used as column labels and others as row labels.
  • Write a Pandas program to create a pivot table from a MultiIndex DataFrame and then use the index levels as both columns and rows.

Go to:


Previous: Write a Pandas program to construct a series using the MultiIndex levels as the column and index.

Next: Write a Pandas program to extract a single row, rows and a specific value from a MultiIndex levels DataFrame.

Python Code Editor:

Have another way to solve this solution? Contribute your code (and comments) through Disqus.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Follow us on Facebook and Twitter for latest update.