为什么在Python中无法计算出完整的相关矩阵?

时间:2019-12-20 06:14:13

标签: python pandas pearson-correlation

我有一个包含4个变量的数据集(轴承1至轴承4),并且20152319没有观测值。看起来像这样:

A snapshot of the dataset I am working on

现在,我正在尝试查找4个变量的相关矩阵。我使用的代码是这样:

corr_mat = Data.corr(method = 'pearson')
print(corr_mat)

但是,在结果中,我仅获得方位2与方位4的相关性信息。方位1无处可见。我在下面提供了结果的快照:

Snapshot of the correlation matrix

我尝试从每个变量中删除NULL值,还尝试寻找缺失的值,但没有任何效果。有趣的是,如果我分离出前两个变量(轴承1和轴承2),然后尝试找到它们之间的相关矩阵,轴承1不会出现,并且该矩阵是只有轴承2的1x1矩阵。 >

任何关于为什么发生这种情况以及如何解决的解释将不胜感激。

2 个答案:

答案 0 :(得分:2)

尝试查看第一列“轴承1”是否为数字。

cannot convert from 'Nest.PropertiesDescriptor<object>' to 'System.Func<Nest.PropertiesDescriptor<object>, Nest.IPromise<Nest.IProperties>>'

现在应用您的计算,

Data.dtypes # This will show the type of each column

cols = Data.columns # Saving column names to a variable
Data[cols].apply(pd.to_numeric, errors='coerce') # Converting the columns to numeric

答案 1 :(得分:1)

第一列的

Dtypeobject,因此熊猫默认情况下会省略它。解决方案是将其转换为数字:

Data['Bearing 1'] = Data['Bearing 1'].astype(float)

或者如果某些非数字值将to_numericerrors='coerce'结合使用,将这些值解析为NaN s:

Data['Bearing 1'] = pd.to_numeric(Data['Bearing 1'], errors='coerce')

如果要将所有列都转换为数字:

Data = Data.astype(float)

或者:

Data = Data.apply(pd.to_numeric, errors='coerce')