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.数据分析使用

选中数据,点击“数据分析”,选中“描述分析”

结果如下:

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

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

相关文章

fifo ip核 ————读写时钟同步

1.原理 timescale 1ns/1ns module tb_fifo();reg sys_clk ; reg sys_rst_n ; reg [7:0] pi_data ; reg rd_req ; reg wr_req ; reg [2:0] cnt;wire empty ; wire full ; wire [7:0] po_data ; wire [7:0] usedw ;initial begins…

力扣HOT100 - 283. 移动零

解题思路: 双指针 指针 i 用于寻找不为零的位置 指针 j 用于寻找为零的位置 不为零时,自己与自己交换,i 和 j 同时向下一个位置移动 为零时,nums[ i ]与nums[ j ]交换,使零向后移动 class Solution {public void…

总结虚函数表机制——c++多态底层原理

前言: 前几天学了多态。 然后过去几天一直在测试多态的底层与机制。今天将多态的机制以及它的本质分享给受多态性质困扰的友友们。 本节内容只涉及多态的原理, 也就是那张虚表的规则,有点偏向底层。 本节不谈语法!不谈语法&#x…

发布文章积分自动增加

controller ApiOperation(value "添加文章")PostMapping("/addwengzhang")public String addwengzhang(RequestBody WengDto wengDto) {if (wengDto.getContent() null || wengDto.getTitle() null) {return "参数不可为空";}User user user…

【MySQL】InnoDB引擎

逻辑结构 InnoDB存储引擎逻辑结构如图所示: Tablespace:表空间,一个数据库可以对应多个表空间。数据库中的每张表都有一个表空间,用来存放表记录、索引等数据。 Segment:段,表空间中有多个段&#xff0c…

第九届蓝桥杯大赛个人赛省赛(软件类)真题C 语言 A 组-乘积尾零

solution 找末尾0的个数&#xff0c;即找有多少对2和5 >问题等价于寻找所给数据中&#xff0c;有多少个2和5的因子&#xff0c;较少出现的因子次数即为0的个数 #include <iostream> using namespace std; int main() {// 请在此输入您的代码printf("31");…

Java代码基础算法练习-搬砖问题-2024.03.25

任务描述&#xff1a; m块砖&#xff0c;n人搬&#xff0c;男搬4&#xff0c;女搬3&#xff0c;两个小孩抬一砖&#xff0c;要求一次全搬完&#xff0c;问男、 女、小孩各若干&#xff1f; 任务要求&#xff1a; 代码示例&#xff1a; package M0317_0331;import java.util.S…

二手车交易网站|基于JSP技术+ Mysql+Java+ B/S结构的二手车交易网站设计与实现(可运行源码+数据库+设计文档)

推荐阅读100套最新项目 最新ssmjava项目文档视频演示可运行源码分享 最新jspjava项目文档视频演示可运行源码分享 最新Spring Boot项目文档视频演示可运行源码分享 2024年56套包含java&#xff0c;ssm&#xff0c;springboot的平台设计与实现项目系统开发资源&#xff08;可…

快速熟悉ElasticSearch的基本概念

1.全文检索 全文检索是通过文本内容进行全面搜索的技术。通过全文检索可以快速地在大量文本数据中查找包含特定关键词或者短语的文档&#xff0c;并且返回相关的搜索结果。 检索和查询的区别 检索没有搜索条件边界&#xff0c;检索的结果取决于相关性&#xff0c;相关性计算…

VUE:内置组件<Teleport>妙用

一、<Teleport>简介 <Teleport>能将其插槽内容渲染到 DOM 中的另一个位置。也就是移动这个dom。 我们可以这么使用它: 将class为boxB的盒子移动到class为boxA的容器中。 <Teleport to".boxA"><div class"boxB"></div> &…

OC高级编程 第3章:Grand Central Dispatch

3.1 Grand Central Dispatch (GCD)概要 3.1.1什么是GCD Grand Central Dispatch&#xff08;GCD&#xff09;是异步执行任务的技术之一。一般将应用中记述线程管理用的代码在系统级中实现。开发者只要定义想执行的任务并追加到Dispatch Queue中&#xff0c;GCD就能生成必要的…

如何使用Docker安装Paperless-ngx系统并实现远程在线搜索查阅文档

文章目录 1. 部署Paperless-ngx2. 本地访问Paperless-ngx3. Linux安装Cpolar4. 配置公网地址5. 远程访问6. 固定Cpolar公网地址7. 固定地址访问 Paperless-ngx是一个开源的文档管理系统&#xff0c;可以将物理文档转换成可搜索的在线档案&#xff0c;从而减少纸张的使用。它内置…

登录注册界面

T1、编程设计理工超市功能菜单并完成注册和登录功能的实现。 显示完菜单后&#xff0c;提示用户输入菜单项序号。当用户输入<注册>和<登录>菜单序号时模拟完成注册和登录功能&#xff0c;最后提示注册/登录成功并显示注册信息/欢迎XXX登录。当用户输入其他菜…

Open CASCADE学习|将圆转换为NURBS曲线

NURBS曲线&#xff0c;全称非均匀有理B样条曲线&#xff08;Non-Uniform Rational B-Splines&#xff09;&#xff0c;是计算机图形学中用于表示几何形状的数学表示方法。它结合了非均匀B样条&#xff08;B-Splines&#xff09;和有理基函数&#xff08;Rational Basis Functio…

R语言迅速计算多基因评分(PRS)

Polygenic Risk Scores in R 最朴素的理解PRS&#xff1a; GWAS分析结果中&#xff0c;有每个SNP的beta值、se值、P值&#xff0c;因为GWAS分析中将SNP变为0-1-2编码&#xff0c;所以这些显著的SNP的beta值&#xff0c;就可以用于预测。 比如&#xff1a;GWAS分析中&#xf…

QT_day3:2024/3/22

作业1&#xff1a;设计界面 使用手动连接&#xff0c;将登录框中的取消按钮使用qt4版本的连接到自定义的槽函数中&#xff0c;在自定义的槽函数中调用关闭函数 将登录按钮使用qt5版本的连接到自定义的槽函数中&#xff0c;在槽函数中判断ui界面上输入的账号是否为"admin…

【Java基础知识总结 | 第六篇】Java反射知识总结

文章目录 6.Java反射知识总结6.1概述6.1.1什么是反射&#xff1f;6.1.2为什么使用反射&#xff1f; 6.2反射的原理6.3反射的使用6.3.1获取类对象&#xff08;1&#xff09;通过具体类的类名获取&#xff08;2&#xff09;通过对象实例获取&#xff08;3&#xff09;通过class.f…

CSS设置移动端页面底部安全距离

env(safe-area-inset-bottom)是一个CSS属性值&#xff0c;用于设置底部安全距离。它表示使用环境变量来获取底部安全距离的值。当使用环境变量时&#xff0c;需要使用env()函数来引用具体的环境变量。例如&#xff1a; <style> .box{padding-bottom: env(safe-area-inse…

使用uniapp 的 plus.sqlite 操作本地数据库报错:::table xxx has no column named xxxx

背景&#xff1a; 1、使用uniapp 的 plus.sqlite 进行APP本地数据库操作 2、SQLite 模块用于操作本地数据库文件&#xff0c;可实现数据库文件的创建&#xff0c;执行SQL语句等功能。 遇到&#xff1a;在之前创建的表上进行新增字段的操作时候&#xff0c;出现问题&#xff1a…

机器学习(一)

经典定义: 利用经验改善系统自身的性能。 经典的机器学习过程: 基本术语: 数据集:训练集、测试集 示例、样例、样本 属性、特征:属性值 属性空间、样本空间、输入空间 特征向量 标记空间、输出空间 归纳偏好(偏置): 任何一个有效的机器学习算法必有其偏好 学习算法的…