# 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: