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

Python中用iloc选0-8列计算相关性:corr()参数及用法疑问

关于pandas中iloc与corr()结合使用的问题解答

先纠正你的iloc切片错误

你要选取索引0至8的前9列,但[:,0:8]是左闭右开切片,实际只包含0到7共8列。正确的写法应该是[:,0:9],这样才能覆盖0-8的9列数据。

corr()方法的常用参数说明

pandas的corr()方法不需要强制传参,默认就能计算皮尔逊相关系数,但你可以根据需求指定以下关键参数:

  • method:指定相关系数计算方法
    • 'pearson':默认值,适用于线性相关的连续变量
    • 'spearman':斯皮尔曼秩相关,适合非线性但单调的变量,或者包含异常值的场景
    • 'kendall':肯德尔秩相关,适合小样本或有序分类变量
    • 也可以传入自定义函数(需接受两个一维数组,返回一个标量)
  • numeric_only:布尔值,默认True,只对数值型列计算相关性,避免非数值列导致报错
  • min_periods:计算相关系数所需的最小非缺失观测数,默认1,当数据缺失较多时可适当调大

iloc与corr()结合的注意事项

  • iloc选取多列后返回的是DataFrame对象,可直接链式调用corr(),无需额外转换
  • 确保iloc选取的列以数值型为主,如果包含非数值列,建议开启numeric_only=True过滤,或提前对非数值列做编码/删除处理
  • 牢记iloc切片的左闭右开规则,避免列数选取错误

正确代码示例

# 选取索引0-8的9列,计算皮尔逊相关系数(自动过滤非数值列)
corr_matrix = dataset.iloc[:, 0:9].corr(method='pearson', numeric_only=True)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 14:15:25