在 seaborn 的 clustermap() 中进行 z 评分时忽略 std=0 的特征

Ignore features with std=0 when z-scoring in seaborn's clustermap()

我使用 seaborn 的 clustermap() 函数创建热图的数据有时具有标准偏差 std = 0.

的特征

这会在使用函数的参数 z_score = True 进行规范化时提示 ValueError: The condensed distance matrix must contain only finite values

有没有办法排除那些用于 z 评分的特征,以避免压缩距离矩阵中出现无穷大的值?

而不是将函数的 z_score 参数与

一起使用
sns.clustermap(df, cmap="seismic", method="ward", z_score=True)
scipy.stats 中的

zscore() 可以与 lambda 函数一起使用,以便预先对具有 std != 0 的列进行 z 评分。

from scipy.stats import zscore

sns.clustermap(df.apply(lambda col: zscore(col) if col.std()!=0 else col, axis=0),
               cmap="seismic", method="ward")