我正在尝试使用pandas scatter_matrix来显示数据帧内容,例如:
scatter_matrix(df, alpha=0.2, figsize=(6, 6), diagonal='kde')
然而,我得到一个奇异的矩阵错误,因为带有kde选项代码的scatter_matrix试图反转没有协方差的数据的协方差矩阵。
#see pands.tools.plotting.scatter_matrix
n = df.columns.size
mask = notnull(df)
for i, a in zip(range(n), df.columns):
for j, b in zip(range(n), df.columns):
if i == j:
values = df[a].values[mask[a].values]
from scipy.stats import gaussian_kde
y = values
try:
#the line below calls linalg.inv(self._data_covariance)
#which throws the LinAlgError
gkde = gaussian_kde(y)
except LinAlgError as e:
logger.debug("Error, data: {0}".format(y))
有没有办法可以重新创建数据框,以便删除没有协方差的矩阵组合?