【Python】AttributeError: ‘list‘ object has no attribute ‘corr‘

news2024/11/20 15:34:42

一、问题描述

在绘制相关分析热力图的时候:

import seaborn as sns
to_corr = ['Age', 'Income', 'Kidhome', 'Teenhome', 'Recency', 'Complain', 
          'MntWines', 'MntFruits', 'MntMeatProducts', 'MntFishProducts', 'MntSweetProducts', 
          'MntGoldProds', 'NumDealsPurchases', 'AcceptedCmp1', 'AcceptedCmp2', 'AcceptedCmp3', 
          'AcceptedCmp4', 'AcceptedCmp5', 'Response', 'NumWebPurchases', 'NumCatalogPurchases', 
          'NumStorePurchases', 'NumWebVisitsMonth', 'Years_Since_Registration', 'Family_Size',
           'Sum_Mnt', 'Num_Accepted_Cmp', 'Num_Total_Purchases']

cmap = sns.diverging_palette(220, 10, as_cmap = True)
matrix = np.triu(data[to_corr].corr())
plt.figure(figsize = (25, 14))
plt.title('Correlation matrix', fontsize = 18)
sns.heatmap(data = [to_corr].corr(), annot = True, fmt = '.1f', vmin = -0.4, center = 0, cmap = cmap, mask = matrix)
plt.show()
  • 首先,定义了一个包含待计算相关系数的特征列表to_corr,其中包括了数据集中的多个特征,如年龄(‘Age’)、收入(‘Income’)、家庭成员数量(‘Kidhome’、‘Teenhome’)、购买金额(‘MntWines’、‘MntFruits’、'MntMeatProducts’等)、购买次数(‘NumDealsPurchases’、'NumWebPurchases’等)、注册年限(‘Years_Since_Registration’)等。
  • 使用 seaborn 库中的 diverging_palette() 函数生成一个调色板 cmap,用于定义热力图的颜色。
  • 利用 numpy 库中的 triu() 函数计算 to_corr 列中的特征之间的相关系数矩阵,并将其赋值给变量matrix。np.triu() 函数将矩阵的下三角部分置为零,只保留上三角部分,用于在热力图中显示上三角矩阵。
  • 创建一个图形对象,设置图形的大小和标题。
  • 使用 seaborn 库中的 heatmap() 函数生成热力图,将计算得到的相关系数矩阵作为数据传递给 data 参数,设置 annot=True 以在图中显示相关系数的数值,设置 fmt='.1f' 以将数值格式化为一位小数,设置 vmin=-0.4center=0 以调整颜色映射的范围,设置 cmap=cmap 以使用之前定义的调色板,设置 mask=matrix 以将矩阵的下三角部分遮挡,最后使用 plt.show() 函数显示图形。

通过生成的热力图,可以直观地观察到数据集中各个特征之间的相关性,颜色越深表示相关性越强,颜色越浅表示相关性越弱。这可以帮助您了解不同特征之间的关系,从而在数据分析和建模过程中作出更明智的决策。

但是代码报错:
在这里插入图片描述

二、报错原因及改正

这个错误是因为在 sns.heatmap() 函数中,data 参数传入了一个列表 to_corr,而列表没有 corr() 方法,导致了 AttributeError 错误的发生。

corr() 方法用于计算数据的相关系数矩阵,它应该作用于一个数据框(DataFrame)对象,而不是列表。你可以通过从原始数据框中选择需要计算相关系数的列,创建一个新的数据框,然后将其传递给 sns.heatmap() 函数。

以下是修复错误的示例代码:

import seaborn as sns
import numpy as np
import matplotlib.pyplot as plt

to_corr = ['Age', 'Income', 'Kidhome', 'Teenhome', 'Recency', 'Complain', 
          'MntWines', 'MntFruits', 'MntMeatProducts', 'MntFishProducts', 'MntSweetProducts', 
          'MntGoldProds', 'NumDealsPurchases', 'AcceptedCmp1', 'AcceptedCmp2', 'AcceptedCmp3', 
          'AcceptedCmp4', 'AcceptedCmp5', 'Response', 'NumWebPurchases', 'NumCatalogPurchases', 
          'NumStorePurchases', 'NumWebVisitsMonth', 'Years_Since_Registration', 'Family_Size',
           'Sum_Mnt', 'Num_Accepted_Cmp', 'Num_Total_Purchases']

cmap = sns.diverging_palette(220, 10, as_cmap=True)
matrix = np.triu(data[to_corr].corr())

plt.figure(figsize=(25, 14))
plt.title('Correlation matrix', fontsize=18)
sns.heatmap(data=data[to_corr].corr(), annot=True, fmt='.1f', vmin=-0.4, center=0, cmap=cmap, mask=matrix)
plt.show()

在修复后的代码中,data[to_corr].corr() 会计算 to_corr 列中的相关系数矩阵,并作为参数传递给 sns.heatmap() 函数进行绘图。

运行结果如下:

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/444365.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何将 Spire.Doc for C++ 集成到 C++ 程序中

Spire.Doc for C 是一个专业的 Word 库,供开发人员在任何类型的 C 应用程序中阅读、创建、编辑、比较和转换 Word 文档。 本文演示了如何以两种不同的方式将 Spire.Doc for C 集成到您的 C 应用程序中。 通过 NuGet 安装 Spire.Doc for C通过手动导入库安装 Spire.…

tomcat配置虚拟主机

文章目录 tomcat配置虚拟主机环境修改tomcat主配置文件server.xml配置配置虚拟主机目录以及文件重新启动tomcat修改windows的hosts文件浏览器测试 tomcat配置虚拟主机 环境 java version “1.8.0_261”Server version: Apache Tomcat/8.5.20 修改tomcat主配置文件server.xml…

缺省参数-函数重载

缺省参数 缺省参数是声明或定义函数时为函数的参数指定一个默认值 有什么用? 更加灵活的增加默认值,或者手动给一个初始值,解决了C语言#define给死一个值的缺陷,C语言无法做到缺省参数这么灵活 struct Stack {int* a;int top;in…

北邮22信通:(13)第三章 3.4 串的实现 KMP算法

北邮22信通一枚~ 跟随课程进度每周更新数据结构与算法的代码和文章 持续关注作者 解锁更多邮苑信通专属代码~ 上一篇文章: 下一篇文章: ***说明*** 1.本代码结合书上第二章线性表和4.3.3KMP算法结合书写。 2.加快匹配速度的根本原因&#xff1…

行业分析| 新的学习方式——在线自习室

互联网技术在快速革新中不断推动新应用、新场景、新模式和新业态的发展融通,如近年来不断催生的游戏直播、直播带货、户外直播等网络生态。随着互联网用户逐年增多,年轻化趋势明显,互联网直播内容逐渐向生活化、日常化拓展,加之“…

Linux 防火墙常用命令

目录 前文叙述 Linux 找不到 firewall 命令 firewalld 常用管理命令 firewall-cmd 常用命令参数说明 前文叙述 Linux 防火墙默认为开启状态,生产环境下 Linux 防火墙也肯定是开启状态。因此在生产环境下往往是开放特定端口让外部进行连接使用。 Linux 找不到 fir…

数字化时代,企业为什么越来越重视数据分析

自数据成为第五大生产要素后,其价值得到了越来越多企业的认可,也成为了各行各业企业的重要的资产。而信息化建设在企业中的发展更是给了数据增长的机会,随着业务信息系统在企业中成为基础建设,众多企业都通过业务系统沉淀了大量业…

JSP的基本使用总结

JSP的基本使用总结 🏠个人主页:shark-Gao 🧑个人简介:大家好,我是shark-Gao,一个想要与大家共同进步的男人😉😉 🎉目前状况:23届毕业生,目前在…

海睿思分享 | 风控监管,守住企业生命线

1 企业如何应对市场风险 随着市场形势日益严峻,企业风险系数也在同步增加,一旦风险管理出现重大问题,将是致命的、灾难性的,可能导致企业出现生存危机。 风控监管的主要目的在于通过对各类风险进行识别、分析、监控&#xff0c…

【java web篇】MyBatis之Mapper代理

📋 个人简介 💖 作者简介:大家好,我是阿牛,全栈领域优质创作者。😜📝 个人主页:馆主阿牛🔥🎉 支持我:点赞👍收藏⭐️留言&#x1f4d…

MacOS版本RedisDesktopManager源码编译

1. 克隆 : git clone --recursive https://github.com/RedisInsight/RedisDesktopManager.git 查看依赖模块: git submodule 编译注意事件,部分源码的子仓库依赖没有下载完整的,要手动下载 brotli子模块 编译brotli子模块 $ mkdir out && cd out $ ../configure-c…

助力春耕:数智驱动现代农业高质量发展

最近有部很有意思的综艺《种地吧!少年》,节目内容就是十个少年要用192天的时间在142亩土地上,完成抢收水稻,抢种小麦,并在6月份完成小麦的收割,这样一个内容。 这个节目没有流量明星,而被吸引去…

MyBatis(十六)MyBatis使用PageHelper

一、limit分页 mysql的limit后面两个数字: 第一个数字:startIndex(起始下标。下标从0开始。) 第二个数字:pageSize(每页显示的记录条数) 假设已知页码pageNum,还有每页显示的记录…

K8s集群搭建-Kubeadm方式搭建集群【1.23.0版本】

文章目录 一、初始化准备二、安装kubeadm三、初始化Master集群四、将新的Node节点加入集群五、部署CNI网络插件六、其他配置 Kubernetes1.24(包括1.24)之后不在兼容docker,如果有需要兼容docker的需求,则安装一个 cri-docker的插件,本文使用的是kuberne…

【技巧】如何在微信与企业微信端实现自动化ChatGPT智能机器人服务?(WorkTool)

场景描述 对于使用企业微信办公协作的公司/团体/组织等,在工作的时候,经常需要通过群机器人的方式,回答群内成员的问题。 基于此,一些企业想要将ChatGPT的智能对话能力与企业微信群机器人的回复能力结合,在企业微信群…

VMware Site Recovery Manager 8.7 (for vSphere 8 U1) - 数据中心灾难恢复 (DR)

请访问原文链接:https://sysin.org/blog/vmware-srm-8/,查看最新版。原创作品,转载请保留出处。 作者主页:sysin.org Site Recovery Manager 8.7 | 18 APR 2023 | Build 21590800 什么是 Site Recovery Manager (SRM)&#xff1…

【网络安全】CVE漏洞分析以及复现

漏洞详情 Shiro 在路径控制的时候,未能对传入的 url 编码进行 decode 解码,导致攻击者可以绕过过滤器,访问被过滤的路径。 漏洞影响版本 Shiro 1.0.0-incubating 对应 Maven Repo 里面也有 【一一帮助安全学习,所有资源获取一…

GrapeCity Documents for Imaging

GrapeCity Documents for Imaging 现在可以使用高斯模糊效果在整个输入图像或部分图像上基于高斯函数创建模糊。 在GcBitmap类中添加了IsBlackAndWhite和IsGrayscale。这些方法可以更快地检查图像是由黑白像素组成还是仅由灰度组成。 IsBlackAndWhite方法检查所有图像像素是不透…

回炉重造八--系统启动和内核管理

系统启动和内核管理 1、系统启动 1.1 centos7启动的过程 UEFI或BIOS初始化,运行post开机自检选择启动的设备(USB、硬盘、本地光盘)引导装载程序,centos7是给grub2加载装载程序的配置文件: /etc/grub.d/ /etc/default…

使用 Amazon Step Functions 和 Amazon Athena 实现简易大数据编排

很多公司都在亚马逊云上围绕 Amazon S3 实现了自己的数据湖。数据湖的建设涉及到数据摄入、清洗、转换,以及呈现等多个步骤,还需要对这些步骤进行编排,这对很多人手不足或者初识数据湖的团队形成了挑战。 在本篇文章中,我将介绍一…