这是我的数据。我想把这个多维对称 Dataframe 转换成一个2列的 Dataframe ,而不需要重复。
#coding=utf-8
import pandas as pd
import numpy as np
#########
cor = [('E1',0,0,0.8,-0.8),
('E2',0,0,1.0,1.0),
('E3',0.8,1.0,0,1.0),
('E4',-0.8,1.0,1.0,0)]
label = ['','E1','E2', 'E3', 'E4']
R = pd.DataFrame.from_records(cor, columns=label)
print(R)
**我想将其转换为2列矩阵,但不重复。**我想要的主要结果如下:
1条答案
按热度按时间snz8szmq1#
使用
DataFrame.stack
进行整形(首先将空字符串列转换为index
),通过DataFrame.rename_axis
设置新索引名,并通过Mapfrozenset
删除MultiIndex
中的重复项:或者使用
numpy.triu
将下三角形值转换为DataFrame.where
中的缺失值,因此stack
删除缺失值: