Pandas 方法 corr() 并未使用所有功能

问题描述 投票:0回答:2

我有形状为 (335539, 26) 的数据框。 所以我有 26 个特征。但是当我使用

data.corr() 

我得到一个 12 x 12 矩阵。

可能出了什么问题? `

python pandas correlation
2个回答
1
投票

Pearson 相关性只能用于连续数据。由于各种原因,将分类特征更改为在 1 到 n 之间进行计数是没有意义的。您可以使用一种热编码技术或虚拟变量技术将它们更改为数字。 目前尚不清楚您试图在哪种类型的数据特征之间找到相互关系。 如果您试图找到名义变量和连续变量之间的相关性,最好称为关联度量,您可以使用 scipy 库中内置实现的 ANOVA 进行计算。 如果它位于序数变量和连续变量之间,您可以使用 Spearman 的相关方法。

如果您仍然想使用 corr() 找到相关性,请尝试使用我提到的上述方法转换您的数据,尽管我不确定您是否会得到正确的结果。

最好首先正确地提出你的问题,然后寻找支持你的样本空间的具体测试。

corr() 仅接受数值数据,因此您只能找到数值特征之间的相关性。


1
投票

“data”列中似乎有一些具有“object”数据类型的非数字值,这些值不会在 corr() 中显示。

data.dtypes

为了解决这个问题,您可以使用 get_dummies 或 one-hot 编码方法来处理分类特征。此外,使用以下代码转换“对象”数据类型的其他数字特征:

data['x'] = pd.to_numeric(data['x'], errors='coerce')

请记住在用 np.na 替换任何缺失值之前先转换为数字:

data['x'] = pd.to_numeric(df_['x'], errors='coerce').astype('float64')
data['Tenure'] = data['x'].apply(lambda x: x if x >= 0 else  np.nan)
© www.soinside.com 2019 - 2024. All rights reserved.