Home »
Python »
Python Programs
Melt the Upper Triangular Matrix of a Pandas DataFrame
Learn, how to melt the upper triangular matrix of a pandas dataframe in Python?
By Pranit Sharma Last updated : October 06, 2023
Pandas is a special tool that allows us to perform complex manipulations of data effectively and efficiently. Inside pandas, we mostly deal with a dataset in the form of DataFrame. DataFrames are 2-dimensional data structures in pandas. DataFrames consist of rows, columns, and data.
Problem statement
Suppose that we are given square pandas dataframe, we need to melt the upper triangular matrix of this dataframe.
Melting the Upper Triangular Matrix of a Pandas DataFrame
For this purpose, we will first convert lower values of the dataframe to nan by using where and numpy.triu() and then we will use stack and reset_index() to melt the upper part of dataframe.
Let us understand with the help of an example,
Python program to melt the upper triangular matrix of a pandas dataframe
# Importing pandas package
import pandas as pd
# Import numpy
import numpy as np
# Creating a dataframe
df = pd.DataFrame({'A':[1,5,10],'B':[2,7,12],'C':[3,8,13]})
# Display the DataFrame
print("Original DataFrame:\n",df,"\n\n")
# Converting lower values of df to nan
df = df.where(np.triu(np.ones(df.shape)).astype(np.bool_))
# Melting upper part
df = df.stack().reset_index()
df.columns = ['X','Y','Z']
# Display result
print("Result:\n",df)
Output
The output of the above program is:
Python Pandas Programs »