You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

运行Pandas代码计算correlation matrix为何输出结果为空

问题原因

你调用pd.read_csv时指定了dtype='unicode'参数,导致所有读取的列都被识别为字符串类型,而Pandas的corr()方法默认仅对数值型字段计算相关系数,字符串字段会被直接跳过,因此最终输出的相关系数矩阵为空。

解决方法
  • 方法一:读取数据时移除dtype='unicode'配置,让Pandas自动推断列的数据类型,修改后的读取代码如下:
import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
data = pd.read_csv(r"C:\Users\amgup\Downloads\Model_Wells\combined.csv", sep=',', usecols=['ACOUSTICIMPEDANCE1', 'CALI', 'DT','GR','NPHI','RHOB','LLD','PIGN','SP','VCL'])
cor=data.corr()
print(cor)
  • 方法二:如果原始数据中存在干扰字符导致自动识别为字符串,可以读取后手动将列转为数值类型,非数值内容会被转为空值NaN:
# 原读取代码不变,新增类型转换逻辑
data = data.apply(pd.to_numeric, errors='coerce')
cor=data.corr()
print(cor)
  • 验证方法:类型处理完成后可以执行print(data.dtypes)查看各列数据类型,确认需要计算的列均为int/float类型后再调用corr()方法即可得到正常的相关系数矩阵。

内容的提问来源于stack exchange,提问作者Vaishnavi Gupta

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 12:27:01