python、execl数据分析(数据描述)
一 python
1.各函数
1.1python库的安装与导入
#pip install os#pip install matplotlib#pip install seaborn#pip install scikit-learn#pip install scipy#修 改 工 作 目 录import osos.getcwd () # 查看当前工作环境os.chdir( 'F :\my course\database ') # 修改工作环境os.getcwd ()#模 块 价 值import pandas as pdimport numpy as npimport matplotlib.pyplot as pltimport seaborn as sns #统 计 绘 图from sklearn.preprocessing import StandardScalerfrom scipy.stats import normfrom scipy import stats #统 计from sklearn.impute import Simple Imputer #导 入 模 块
1.2python读入和检查数据
# 读 入 分 析 数 据
2 df= pd.read_csv("customer1997 .csv")
3
4 # 检 查 数 据、 行 数、 列 数、 列 属 性 和 类 型
5 df.shape # 行 数 和 列 出
6 df.info () # 每 个 属 性 的 行 数 和 类 型
7 df.columns # 属 性 列 名 称
8 # 查 看 数 据 集 前5 行
9 df.head (5)
1.3数据属性的描述性分析
1 # 分 别 查 看RFM 的 描 述 统 计 量
2 # 方 法1 使 用describe() 输 出 数 值 属 性 的 行 数、 均 值、 标 准 差、 最 小 值、 Q1 ,Q2 ,Q3 ,最 大 值 3 df.describe ()
4 # 方 法2 使 用describe() 输 出 数 值 属 性 的 行 数、 均 值、 标 准 差、 最 小 值、 Q1 ,Q2 ,Q3 ,最 大 值 5 df[ 'Rec en cy '].describe () # 注 意 大 小 写 是 敏 感 的
6 # 方 法3 使 用 函 数 对 某 列 进 行 描 述 统 计
7 print( '对 客 户 的 到 店 次 数 进 行 描 述 统 计 ')
8 print( '最 小 值 是 ' , df[ 'Frequency '].min ())
9 print( '均 值 是 ' , df[ 'Frequency '].mean ())
10 print( ' 中 位 数 是 ' , df[ 'Frequency '].median ())
11 print( '第25 百 分 位 数 ' , df[ 'Frequency '].quantile(q=0.25))
12 print( '第75 百 分 位 数 ' , df[ 'Frequency '].quantile(q=0.75))
13 print( '最 大 值 是 ' , df[ 'Frequency '].max ())
14 print( '极 差 是 ' , df[ 'Frequency '].max ()-df[ 'Frequency '].min ())
15 print( '方 差 和 标 准 差 ' , df[ 'Frequency '].var(),df[ 'Frequency '].std())
16 print( '变 异 系 数 ' , df[ 'Frequency '].std()/df[ 'Frequency '].mean ())
17 print( '偏 度 和 峰 度 ' , df[ 'Frequency '].skew (),df[ 'Frequency '].kurt os is ())
18
19 # 数 值 型 属 性 统 计 分 布 图
20 # 绘 制 分 布 图 确 保 import seaborn as sns 被 执 行
21 df[ 'Monetary ']
22 sns.distplot(df[ 'Monetary '])
23 # 绘 制 盒 型 图
24 sns.boxplot(df[ 'Monetary '])
25 # 绘 制 核 密 度 图
26 sns.kdeplot(df[ 'Monetary '], shade=True , bw=.5, color="olive")
1.4分类属性的描述性分析
1 # 分 类 数 据 的 频 数 统 计
2 # 按 会 员 卡 等 级 统 计 人 数、 RFM 的 均 值、 描 述 统 计 量
3 # 设 置 数 据 对 象 的 分 组 属性 ,并 创 建 新 的 数 据 对 象
4 member card_summary=df.groupby( 'member_card ')
5 member card_summary [ 'customer_id '].count ()
6 member card_summary [ 'Rec en cy '].mean ()
7 member card_summary .mean ()
8 member card_summary [ 'Frequency '].describe ()
9 member card_summary [ 'Monetary '].describe ()
1.5两个分类属性的交叉统计分析
1 # 两 个 个 分 类 属 性 的 交 叉 统 计 分 析
2 # 按 会 员 卡 和 性 别 的 输 出 交 叉 表
3 pd.crosstab(df[ 'member_card '], df[ 'gender '])
4 #对 交 叉 结 果 进 行 归 一 化
5 pd.crosstab(df[ 'member_card '], df[ 'gender '],normalize=True)
6 #在 最 右 边 增 加 一 个 汇 总 列
7 pd.crosstab(df[ 'member_card '], df[ 'gender '],normalize=True ,margins=True)
8 # 对 每 列 进 行 归 一 化
9 pd.crosstab(df[ 'member_card '], df[ 'gender '],normalize= 'columns ')
10 # 绘 制 频 数 图/条 形 图
11 # 对 比 每 个 会 员 等 级 的 不 同 性 别 的 客 户 数 量
12 sns.countplot(y="member_card" ,hue= 'gender ' ,data=df)
13 # 两 个 分 类 属 性 增 加1个 数 值 属 性 的 盒 形 图
14 sns.boxplot(x="member_card" ,y="Frequency" ,hue="gender" ,data=df)
1.6两个数值属性的相关分析
# 两 个 数 值 属 性
2 # 绘 制 相 关 矩 阵 和 热 力 图
3 # 输 出 数 值 型 属 性 的 两 两 相 关 系 数 表
4 df.corr ()
5 #绘 制 热 力 图
6 corr=df.corr ()
7 corr=(corr)
8 sns.heatmap(corr , xticklabels=corr.columns.values , yticklabels=corr.columns.values) 9 #绘 制2个 变 量 散 点 图 (scatterplot)
10 sns.scatterplot(x="Frequency" , y="Monetary" , data=df)
11 #绘 制 带 回 归 线 的 散 点 图 (lmplot)
12 sns.lmplot(x="Frequency" , y="Monetary" , data=df)
13 #在 散 点 图 上 增 加 一 个 分 类 属 性
14 sns.lmplot(x="Frequency" , y="Monetary" ,hue="gender" , data=df)
15 # 集 群 散 点 图(swarmplot)
16 sns.swarmplot(x=df[ 'gender '], y=df[ 'Monetary '])
17 sns.swarmplot(x=df[ 'gender '], y=df[ 'Frequency '])
18
19
20 #简 单 散 点 图 的 绘 图 语 法: sns .scatterplot( x=X对 应 变量 , y=Y对 应 变 量)
21 #分 组 散 点 图 的 绘 图 语 法: sns .scatterplot( x=X对 应 变量 , y=Y对 应 变量 , hue=分 组 依 据 的 类 别 变 量) 22 # 带 回 归 线 的 散 点 图 的 绘 图 语 法: sns .regplot( x=X对 应 变量 , y=Y对 应 变 量)
23 # 带 回 归 线 的 分 组 散 点 图 的 绘 图 语 法: sns .lmplot(x=X变 量 列名 , y=Y变 量 列名 , hue=分 组 依 据 的 类 别 变 量 列 名 , data=数 据 表)
24 #集 群 散 点 图(swarmplot) 的 绘 图 语 法: sns .swarmplot( x=X对 应 的 类 别 变量 , y=Y对 应 变 量)
1.7分类属性和数值属性的方差分析
1 # 1个 分 类 属 性 和1个 数 值 属 性
2 # 绘 制 盒 型 图
3 sns.boxplot(x=df[ 'member_card '],y=df[ 'Monetary '],data=df)
4 sns.boxplot(x=df[ 'gender '],y=df[ 'Monetary '],data=df)
5 # 单 因 素 方 差 分 析: 比 较 均 值 的 差 异 性
6 from scipy import stats
7 from statsmodels.formula.api import ol s
8 from statsmodels.stats.anova import anova_lm
9 from statsmodels.stats.multi comp import pairwise_tukeyhsd
10
11 df2=pd.con cat ([df[ 'gender '],df[ 'Monetary ']],axis=1)
12 anova_monetary= anova_lm(ol s( 'Monetary~C (gender) ' ,data=df2[[ 'gender ' , 'Monetary ']]).fit()) 13 print(anova_monetary)
14 ## 在0.05 的 显 著 水 平 下, 不 同 性 别 客 户 的 消 费 金 额 是 有 差 异 的
15 # 绘 制 不 同 组 的 核 密 度 图
16 # 使 用loc()取 出 不 同 组 的 数 据
17 p1=sns.kdeplot(df.loc[(df[ 'gender ']== 'M '), 'Rec en cy '], shade=True , color="r" ,label= 'M ') 18 p2=sns.kdeplot(df.loc[(df[ 'gender ']== 'F '), 'Rec en cy '], shade=True , color="b" ,label= 'F ') 19 plt.show ()
20 ##绘 制 叠 加 图 时 多 行 一 起 执 行
1.8时间序列数据
1 # 带 有 时 间 属 性
2 # 读 入 分 析 数 据
3 import numpy a s np
4 import pandas a s pd
5 from datetime import datetime
6 import matplotlib.pylab a s plt
7 # 读 取 数 据, pd .read_csv 默 认 生 成DataFrame对 象, 需 将 其 转 换 成Series对 象
8 df = pd.read_csv( 'daily sales1997 .csv ' , encoding= 'utf-8 ' , index_col= 'date ')
9 df.info ()
10 df.index
11 df.index = pd.to_datetime(df.index) # 将 字 符 串 索 引 转 换 成 时 间 索 引
12 ts = df[ 'sales '] # 生 成pd .Series对 象
13 # 查 看 数 据 格 式
14 ts.head ()
15 ts.head ().index
16 #查 看 某 日 的 值 既 可 以 使 用 字 符 串 作 为 索 引, 又 可 以 直 接 使 用 时 间 对 象 作 为 索 引
17 ts[ '1997-01-05 ']
18 ts[datetime (1997 ,10 ,1)]
19 #切 片 操 作
20 ts[ '1997-5 ' : '1997-6 ']
21 #绘 制 时 间 序 列 图
22 ts.plot(fig size=(12 ,8))
2.例子
(1)
hotel.csv
def hotel_data():df = pd.read_csv('hotel.csv')# print(df)return dfdef get_shape(): # 获取行列值shape = hotel_data().shapeprint(shape)def get_info():info = hotel_data().infoprint(info)def get_column():column = hotel_data().columnsprint(column)def get_describe(): # 描述数据:数量,均值,最小值,最大值,25%,50%,75%describe = hotel_data().describe()print(describe)def get_box(): # 盒型图data = hotel_data()sns.boxplot(data)# sns.boxplot(data['nocheckin'], vert=False, showfliers=True)plt.show()def get_dis(): # 柱形图data = hotel_data()sns.displot(data)plt.show()def get_kdef(): # 分布图data = hotel_data()# sns.kdeplot(data, shade=True, bw=.5, color="olive")sns.kdeplot(data, fill=True, bw_method=.5, color="olive")plt.show()
hotel_data()结果:
get_describe()结果:
get_column()结果:
get_box()结果:
get_dis()结果:
get_kdef()结果:
(2)
customer1997.csv
def get_summary(): # 分组频数统计data = customer_data()member_summary = data.groupby('member_card')data1 = data.groupby('member_card').count()print(data1)data2 = member_summary['customer_id'].count() # 单个变量 每类会员卡人数print(data2)data3 = member_summary['Monetary'].mean() # 双变量 会员卡 消费金额 每类会员卡平均print(data3)data4 = member_summary['Monetary'].describe()print(data4)
结果
二 execl
1.调出“数据分析”按钮
文件--选项--加载项--转到--分析工具库
查看
2.数据分析使用
选中数据,点击“数据分析”,选中“描述分析”
结果如下:
相关文章:

python、execl数据分析(数据描述)
一 python 1.各函数 1.1python库的安装与导入 #pip install os#pip install matplotlib#pip install seaborn#pip install scikit-learn#pip install scipy#修 改 工 作 目 录import osos.getcwd () # 查看当前工作环境os.chdir( F :\my course\database ) # 修改工作环境o…...
前端理论总结(css3)——页面布局方法
瀑布流 优点:节省空间,外表美观,更有艺术性 对于触屏设备非常友好,通过向上滑动浏览 用户浏览时的观赏和思维不容易被打断,留存更容易 缺点:用户…...
06|Java集合框架初学者指南:List、Set与Map的实战训练
Java集合框架是Java语言的核心部分,它提供了丰富的类和接口,用来高效地管理和操作大量数据。这个强大的工具箱包括多种集合类型,其中最为常用的是List、Set和Map。 1.List - 有序且可重复的数据清单 概念: List就像一个购物清单,你可以按照加入顺序存放和检索项目,而且同…...
Jmeter基础篇(18)压测过程中的注意事项
一、测试计划设计: 1、场景设计:需要基于实际业务需求设计合理的并发用户模型、事务和思考时间,模拟真实用户的操作行为。 2、目标明确:定义明确的性能指标(如响应时间、吞吐量、并发用户数、错误率等)和性…...

‘npm‘ 不是内部或外部命令,也不是可运行的程序
npm认识三年了,今天才知道这是node.js的命令 也就是说,想要在cmd里面运行 npm 命令,但就的安装node.js 1. node.js安装 没有安装包的先下载安装包:下载 | Node.js 中文网 (nodejs.cn) 下载之后双击打开,一路安装确…...
使el-table通过操控鼠标滚轮横向滚动
1.创建directive文件夹,里面创建directive.js文件 import Vue from vue;Vue.directive(scroll-x,{inserted:function(el){let domClass el.getAttribute(class)if(domClass.indexOf(el-table)<0){return false}const scrollDiv el;if(scrollDivnull){return fa…...
神经网络深度学习梯度下降算法优化
【神经网络与深度学习】以最通俗易懂的角度解读[梯度下降法及其优化算法],这一篇就足够(很全很详细)_梯度下降在神经网络中的作用及概念-CSDN博客 https://blog.51cto.com/u_15162069/2761936 梯度下降数学原理...
向开发板上移植ip工具:将ip工具移植到开发板系统中
一. 简介 前面一篇文章对 ip工具源码进行了交叉编译,生成了ip工具。文章如下: 向开发板上移植ip工具:交叉编译 ip工具-CSDN博客 本文对生成的 ip工具进行移植,即移植到开发板系统中,并确定是否可用。 二. 向开发板…...
数据关联_3.7
目标 利用匈牙利算法对目标框和检测框进行关联 在这里我们对检测框和跟踪框进行匹配,整个流程是遍历检测框和跟踪框,并进行匹配,匹配成功的将其保留,未成功的将其删除。 def associate_detections_to_trackers(detections, track…...

总结虚函数表机制——c++多态底层原理
前言: 前几天学了多态。 然后过去几天一直在测试多态的底层与机制。今天将多态的机制以及它的本质分享给受多态性质困扰的友友们。 本节内容只涉及多态的原理, 也就是那张虚表的规则,有点偏向底层。 本节不谈语法!不谈语法&#x…...
Contos7 安装 Maven
Contos7 安装 Maven 前言 Maven是一个用于构建和管理Java项目的强大工具。它提供了一种简单且一致的方式来构建、测试和部署项目,同时管理项目依赖关系。Maven基于项目对象模型(Project Object Model,POM),使用XML…...
对适配器模式的理解
目录 一、适配器模式是什么?二、示例【[来源](https://refactoringguru.cn/design-patterns/adapter)】1 第三方依赖 (接口A 数据A)2 客户端3 方钉转圆钉的适配器(数据B) 三、适配器(xxxAdapter࿰…...

纯前端调用本机原生Office实现Web在线编辑Word/Excel/PPT,支持私有化部署
在日常协同办公过程中,一份文件可能需要多次重复修改才能确定,如果你发送给多个人修改后再汇总,这样既效率低又容易出错,这就用到网页版协同办公软件了,不仅方便文件流转还保证不会出错。 但是目前一些在线协同Office…...
双指针的详细教程
双指针算法是一种常用的算法技巧,它通常用于在数组或字符串中进行快速查找、匹配、排序或移动操作。 双指针并非真的用指针实现,一般用两个变量来表示下标(在后面都用指针来表示) 双指针算法使用两个指针在数据结构上进行迭代&a…...

【Review+预测】测试架构演进的曲折之路
文章目录 前言 一、“原始”阶段 二、“小打小闹”阶段 三、“小米加步枪”阶段 四、“摩托化部队”阶段 五、“骑兵连”阶段 六、“海军陆战队”阶段 七、“社区型组织”阶段 前言 近期公司的测试团队需要重新组织安排,本着谦虚谨慎的态度,我从…...

2015年认证杯SPSSPRO杯数学建模D题(第二阶段)城市公共自行车全过程文档及程序
2015年认证杯SPSSPRO杯数学建模 D题 城市公共自行车 原题再现: 城市交通问题直接影响市民的生活和工作。在地形平坦的城市,公共自行车出行系统是一种很好的辅助手段。一般来说,公共自行车出行系统由数据中心、驻车站点、驻车桩、自行车&…...

视频汇聚平台EasyCVR启用图形验证码之后调用login接口的操作方法
视频综合管理平台EasyCVR视频监控系统支持多协议接入、兼容多类型设备,平台可以将区域内所有部署的监控设备进行统一接入与集中汇聚管理,实现对监控区域的实时高清视频监控、录像与存储、设备管理、云台控制、语音对讲、级联共享等,在监控中心…...

【数据结构】非线性结构——二叉树
文章目录 前言1.树型结构1.1树的概念1.2树的特性1.3树的一些性质1.4树的一些表示形式1.5树的应用2.二叉树 2.1 概念2.2 两种特殊的二叉树2.3 二叉树的性质2.4 二叉树的存储2.5 二叉树的基本操作 前言 前面我们都是学的线性结构的数据结构,接下来我们就需要来学习非…...

数据分析POWER BI之power query
1.导入数据 ctrla全选--数据--获取数据--其他来源--来自表格/区域 导入数据,进入编辑模式 2.整理与清除 清除:删除所选列的非打印字符 转换--格式--清除 修整:删除前面和后面的空格 转换---格式---修整(修整后前面后面的空格没有了…...

【c语言】详解操作符(上)
1. 操作符的分类 2. 原码、反码、补码 整数的2进制表示方法有三种,即原码、反码、补码 有符号整数的三种表示方法均有符号位和数值位两部分,2进制序列中,最高位的1位是被当做符号位其余都是数值位。 符号位都是用0表示“正”,用…...

20250605使用boot-repair来恢复WIN10和ubuntu22.04.6双系统的启动
rootrootrootroot-X99-Turbo:~$ sudo apt-get install boot-repair rootrootrootroot-X99-Turbo:~$ sudo add-apt-repository ppa:yannubuntu/boot-repair rootrootrootroot-X99-Turbo:~$ sudo apt-get install boot-repair 20250605使用boot-repair来恢复WIN10和ubuntu22.04.6…...

鸿蒙Next开发真机调试签名申请流程
背景: 在学习鸿蒙next开发应用的初期总是会遇到一堆的问题,毕竟鸿蒙next开发不管是他的ArKTS语言还是他的开发工具DevEco Studio都还在起步阶段,就像当初的Android起步一样,总会有资料不足的一些问题。就比如我们学习下载完DevEco…...

[10-2]MPU6050简介 江协科技学习笔记(22个知识点)
1 2 3 欧拉角是描述三维空间中刚体或坐标系之间相对旋转的一种方法。它们由三个角度组成,通常表示为: • 偏航角(Yaw):绕垂直轴(通常是z轴)的旋转,表示偏航方向的变化。 • 俯仰角&a…...

【笔记】MSYS2 的 MINGW64 环境 全面工具链
#工作记录 MSYS2 的 MINGW64 环境(mingw64.exe),下面是为该环境准备的最全工具链安装命令(包括 C/C、Python、pip/wheel、GTK3/GTK4、PyGObject、Cairo、SDL2 等)。 这一环境适用于构建原生 64 位 Windows 应用程序。…...
C# 实现软件开机自启动(不需要管理员权限)
本文参考C#/WPF/WinForm/程序实现软件开机自动启动的两种常用方法,将里面中的第一种方法做了封装成AutoStart类,使用时直接两三行代码就可以搞定。 自启动的原理是将软件的快捷方式创建到计算机的自动启动目录下(不需要管理员权限࿰…...

java32
1.反射 获取类: 获取构造方法: 获取权限修饰符: 获取参数信息: 利用反射出来的构造器来创建对象: 获取成员变量: 获取成员方法: 综合练习: 动态代理:...
python,shell,linux,bash概念的不同和对比联系
一、基本概念理解 1. Linux 是一个 操作系统内核,常与 GNU 工具集成组成完整的 Linux 操作系统。 提供对硬件的管理能力与系统调用接口。 用户通过 Shell 或 GUI 与 Linux 交互。 2. Shell 是用户与 Linux 内核之间的 命令行解释器(CLI)…...
Java并发编程哲学系列汇总
文章目录 并发编程基础并发编程进阶并发编程实践 并发编程基础 Java并发编程基础小结 Java线程池知识点小结 详解JUC包下各种锁的使用 并发编程利器Java CAS原子类全解 深入理解Java中的final关键字 Java并发容器深入解析:HashMap与ArrayList线程安全问题及解…...

Python 开发效率秘籍:PyCharm、VS Code 与 Anaconda 配置与实战全解
目录 一、IDE(集成开发环境)是什么?二、Python IDE有哪些,哪款适合初学者?三、Visual Studio Code下载和安装教程3.1 VS Code下载和安装3.2 VS Code运行Python程序 四、PyCharm下载和安装教程4.1 PyCharm下载4.2 PyCharm安装4.3 运行PyCharm4.4 创建工程…...

pixel刷入Android15 userdebug版本
最近入手一个pixel7,想着刷个userdebug版本,就不用模拟器调试开发了,结果按照网上的教程,每次刷机后都是卡在goole logo界面,卡了一天多我才找到问题所在,想着记录下,给自己做个备份。 1. 前期准备&#x…...