我有带形状的dataframe(335539,26)。我有26个特征。但是当我用
data.corr()
字符串我得到了一个12x12矩阵。有什么不对的?”
c2e8gylq1#
Pearson相关关系只能用于连续数据。由于各种原因,没有必要改变分类特征以在1到n之间进行计数。您可以使用一种热编码技术或虚拟变量技术将它们更改为数值。目前尚不清楚您试图在哪种类型的数据特征之间找到相关关系。如果你试图找到名义变量和连续变量之间的相关关系,它更好地被称为关联度量,你可以使用在scipy库中内置实现的ANOVA来计算。如果它介于顺序变量和连续变量之间,则可以使用斯皮尔曼的协相关法。如果你仍然想使用corr()找到相关性,尝试用上面提到的方法转换你的数据,尽管我不确定你是否会得到正确的结果。最好先正确地制定你的问题,然后寻找支持你样本空间的特定测试。corr()只接受数值数据,因此你只能找到数值特征之间的相关关系。
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)
型
2条答案
按热度按时间c2e8gylq1#
Pearson相关关系只能用于连续数据。由于各种原因,没有必要改变分类特征以在1到n之间进行计数。您可以使用一种热编码技术或虚拟变量技术将它们更改为数值。目前尚不清楚您试图在哪种类型的数据特征之间找到相关关系。如果你试图找到名义变量和连续变量之间的相关关系,它更好地被称为关联度量,你可以使用在scipy库中内置实现的ANOVA来计算。如果它介于顺序变量和连续变量之间,则可以使用斯皮尔曼的协相关法。
如果你仍然想使用corr()找到相关性,尝试用上面提到的方法转换你的数据,尽管我不确定你是否会得到正确的结果。
最好先正确地制定你的问题,然后寻找支持你样本空间的特定测试。
corr()只接受数值数据,因此你只能找到数值特征之间的相关关系。
1yjd4xko2#
“data”中似乎有一些非数字的值:在'data'列中似乎有一些非数字值具有'object'数据类型,这将不会在corr()中显示。
字符串
要解决这个问题,您可以使用get_dummies或one-hot编码方法来处理分类特征。此外,使用以下代码转换“object”数据类型的其他数值特征:
型
请记住,在使用np.na替换任何缺失值之前,请先转换为数值:
型