使用pandas.DataFrame.corr()生成相关矩阵仅返回1列的问题求助
解决pandas.DataFrame.corr()仅返回1列的问题
排查列数据类型:
corr()默认只对**数值型列(int、float类型)**计算相关系数。如果你的DataFrame里只有1列是数值类型,其余为字符串、object等非数值类型,就只会返回这一列的相关矩阵。- 执行
df.dtypes查看所有列的类型,快速定位数值列数量。
- 执行
校验数据有效性:若DataFrame看似有多列,但其他列全是缺失值、非数值内容,也会导致
corr()仅返回单列结果。- 用
df.describe()查看数值列的统计信息,确认是否有多列满足计算条件。
- 用
转换非数值列:如果目标列是object类型但实际存储数值(比如带单位的数字),先做类型转换:
df['需要转换的列'] = pd.to_numeric(df['需要转换的列'], errors='coerce')转换完成后再调用
df.corr()即可生成完整相关矩阵。指定数值列子集:如果只需要计算部分列的相关性,可直接筛选数值列后计算:
numeric_cols = df.select_dtypes(include=['int64', 'float64']).columns df[numeric_cols].corr()
内容的提问来源于stack exchange,提问作者Grant McCurdy
相关产品推荐
相关产品推荐

