Pandas方法corr()没有使用所有的特性

46scxncf  于 2023-08-01  发布在  其他
关注(0)|答案(2)|浏览(150)

我有带形状的dataframe(335539,26)。我有26个特征。但是当我用

data.corr()

字符串
我得到了一个12x12矩阵。
有什么不对的?”

c2e8gylq

c2e8gylq1#

Pearson相关关系只能用于连续数据。由于各种原因,没有必要改变分类特征以在1到n之间进行计数。您可以使用一种热编码技术或虚拟变量技术将它们更改为数值。目前尚不清楚您试图在哪种类型的数据特征之间找到相关关系。如果你试图找到名义变量和连续变量之间的相关关系,它更好地被称为关联度量,你可以使用在scipy库中内置实现的ANOVA来计算。如果它介于顺序变量和连续变量之间,则可以使用斯皮尔曼的协相关法。
如果你仍然想使用corr()找到相关性,尝试用上面提到的方法转换你的数据,尽管我不确定你是否会得到正确的结果。
最好先正确地制定你的问题,然后寻找支持你样本空间的特定测试。
corr()只接受数值数据,因此你只能找到数值特征之间的相关关系。

1yjd4xko

1yjd4xko2#

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

data.dtypes

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

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)

相关问题