如果索引和列相同,如何在单独的列中获取数据集的相关值

How to get the correlated values of a dataset in a seperate column if the index and the columns are same

我将一个数据集导入到我的 python 脚本中并进行了关联。这是关联代码:

data = pd.read_excel('RQ_ID_Grouping.xlsx' , 'Sheet1')
corr = data.corr()

关联后数据如下所示:

我想将数据转换成以下格式:

我正在使用此代码来实现上述数据,但它似乎不起作用:

corr1 = (corr.melt(var_name = 'X' , value_name = 'Y').groupby('X')['Y'].reset_index(name = 'Corr_Value'))

我知道 'groupby' 部分之后应该有一些东西,但我不知道是什么。如果你能帮助我,我将不胜感激。

使用 DataFrame.stack for reshape and drop missing values, convert MultiIndex to columns by DataFrame.reset_index 和最后设置的列名称:

df = corr.stack().reset_index()
df.columns = ['X','Y','Corr_Value']

DataFrame.rename_axis的另一个解决方案:

df = corr.stack().rename_axis(('X','Y')).reset_index(name='Corr_Value')

你的 melt 解决方案也是可行的:

df = (corr.rename_axis('X')
         .reset_index()
         .melt('X', var_name='Y', value_name='Corr_Value')
         .dropna()
         .sort_values(['X','Y'])
         .reset_index(drop=True))