这是我生成的数据帧输出,它是一个 5 x 5 相关矩阵。
A B C D E
A 1.00000 -0.277360 0.653920 -0.479600 0.513890
B -0.27736 1.000000 -0.790648 0.885801 -0.482763
C 0.65392 -0.790648 1.000000 -0.876451 0.672148
D -0.47960 0.885801 -0.876451 1.000000 -0.756182
E 0.51389 -0.482763 0.672148 -0.756182 1.000000
我想获取此数据框的总体平均值,但为此我需要忽略重复值(仅保留第一次出现的值)。我尝试使用
df.drop_duplicates(inplace=True)
但是,它返回未更改的 df,我认为这是因为 drop_duplicates()
将删除行,但不会用 NaN
替换单个单元格。
关于如何实现这一点有什么建议吗? (下面是所需的输出)
请注意,我还需要专门删除相关性 == 1,因为它们是不必要的。
A B C D E
A NaN -0.277360 0.653920 -0.479600 0.513890
B NaN NaN -0.790648 0.885801 -0.482763
C NaN NaN NaN -0.876451 0.672148
D NaN NaN NaN NaN -0.756182
E NaN NaN NaN NaN NaN
最佳答案
检查 tril_indices
df.values[np.tril_indices(len(df))]=np.nan
df
A B C D E
A NaN -0.27736 0.653920 -0.479600 0.513890
B NaN NaN -0.790648 0.885801 -0.482763
C NaN NaN NaN -0.876451 0.672148
D NaN NaN NaN NaN -0.756182
E NaN NaN NaN NaN NaN
关于python - 屏蔽 pandas DataFrame 的下三角部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54049139/