python、execl数据分析(数据描述)

news2024/12/23 20:47:16

 一 python

1.各函数

1.1python库的安装与导入

    #pip install os
    #pip install matplotlib
    #pip install seaborn
    #pip install scikit-learn
    #pip install scipy

    #修 改 工 作 目 录
    import os
    os.getcwd ()  # 查看当前工作环境
    os.chdir( 'F :\my course\database ')  # 修改工作环境
    os.getcwd ()

    #模 块 价 值
    import pandas as pd
    import numpy as np
    import matplotlib.pyplot as plt
    import seaborn as sns #统 计 绘 图
    from sklearn.preprocessing import StandardScaler
    from scipy.stats import norm
    from 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 df


def get_shape():  # 获取行列值
    shape = hotel_data().shape
    print(shape)


def get_info():
    info = hotel_data().info
    print(info)


def get_column():
    column = hotel_data().columns
    print(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.coloradmin.cn/o/1551458.html

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

相关文章

网络稳定性(蓝桥省赛)

0网络稳定性 - 蓝桥云课 (lanqiao.cn) 知识点&#xff1a;克鲁斯卡尔生成树&#xff0c;lca&#xff0c;倍增 最小生成树的模板&#xff1a;最小生成树【模板】-CSDN博客 题解代码如下&#xff1a; #include<bits/stdc.h> using namespace std; const int N3e5100; co…

智慧光伏:企业无纸化办公

随着科技的快速发展&#xff0c;光伏技术不仅成为推动绿色能源革命的重要力量&#xff0c;更在企业办公环境中扮演起引领无纸化办公的重要角色。智慧光伏不仅为企业提供了清洁、可持续的能源&#xff0c;更通过智能化的管理方式&#xff0c;推动企业向无纸化办公转型&#xff0…

CBO VS ABO,哪种策略才更能优化FB广告?

海外创业时&#xff0c;FB广告无疑是吸引目标受众、推动业务增长的重要渠道之一&#xff01;然而令大家头疼的却是在CBO与ABO的选择上&#xff0c;今天就带大家一起解读这两种常见的广告策略。了解两者之间的区别、优缺点及适用场景。 CBO 和 ABO 分别是什么&#xff1f; CBO&a…

网络面试——浏览器输入url到显示主页的过程

浏览器输入URL到显示主页的过程通常可以分为以下步骤&#xff1a; 1. **URL解析**&#xff1a; - 当用户在浏览器的地址栏中输入URL时&#xff0c;浏览器会首先对该URL进行解析。 - 解析URL包括识别协议&#xff08;例如HTTP、HTTPS&#xff09;、主机名&#xff08;例如…

Redis项目实战

本文用用代码演示Redis实现分布式缓存、分布式锁、接口幂等性、接口防刷的功能。 课程地址&#xff1a;Redis实战系列-课程大纲_哔哩哔哩_bilibili 目录 一. 新建springBoot项目整合Redis 二. Redis实现分布式缓存 2.1 原理及好处 2.2 数据准备 2.3 Redis实现分布式缓存…

9.HelloWorld案例常见问题

文章目录 一、BUG二、BUG的解决三、HelloWorld常见问题 一、BUG BUG&#xff08;小甲虫&#xff09;。计算机刚开始出现的时候&#xff0c;因为体积比较大&#xff0c;一些小虫子很容易转进去。有一天有一只蟑螂钻到了计算机当中&#xff0c;从而导致计算机不能正常运行&#…

揭秘!抖音严打AI网红骗局,维护虚拟世界秩序!

近年来&#xff0c;AI网红在社交媒体平台上的兴起引发了不少争议。为了规范虚拟人物的内容创作&#xff0c;抖音平台决定对AI网红乱象进行严厉打击&#xff0c;并推出了一系列措施。 AI-321 | 专注于AI工具分享的网站 AI工具集 | 人工智能工具箱 | 全球顶尖AI工具软件推荐与分…

Java的字符串的基础知识(必看)

目录 Java的字符串的基础知识(必看) String API的使用 String概述 创建String对象的两种方式 号比的是什么? 难点 经典String案例 易错点 StringBuilder 疑难点: StringJoiner 字符串相关类的底层原理 中文的存储原理 String的常见的构造方法 Java的字符串的基础…

Avue-crud表格操作栏不显示修改、删除按钮

2024-03-28 奇了怪了&#xff0c;CSDN自动把我之前的文章设置为VIP了&#xff0c;怪不得有时候搜东西看着看着要收费&#xff0c;现在找东西都不好找&#xff0c;我已经反馈不同意了&#xff0c;看看能不能给我取消吧 今天用Avue的时候发现操作栏的按钮没了&#xff0c;按照文…

网络专有名词

网络专有名词 一、子网掩码 IP地址是以网络号和主机号来标示网络上的主机的&#xff0c;我们把网络号相同的主机称之为本地网络&#xff0c;网络号不相同的主机称之为远程网络主机&#xff0c;本地网络中的主机可以直接相互通信&#xff1b;远程网络中的主机要相互通信必须通过…

从零开始学起!全方位解析App压力测试的关键要点!

简介 Monkey 是 Google 提供的一个用于稳定性与压力测试的命令行工具 可以运行在模拟器或者实际设备中 它向系统发送伪随机的用户事件对软件进行稳定性与压力测试 为什么要用 Monkey Monkey 就是像猴子一样上蹿下跳地乱点 为了测试软件的稳定性&#xff0c;健壮性 随机点…

如何使用群晖WebDAV实现固定公网地址同步Zotero文献管理器

文章目录 前言1. Docker 部署 Trfɪk2. 本地访问traefik测试3. Linux 安装cpolar4. 配置Traefik公网访问地址5. 公网远程访问Traefik6. 固定Traefik公网地址 前言 Trfɪk 是一个云原生的新型的 HTTP 反向代理、负载均衡软件&#xff0c;能轻易的部署微服务。它支持多种后端 (D…

Automatic Prompt Engineering

让大模型自己生成prompt&#xff0c;生成提示&#xff08;prompt&#xff09;存在两种不同的操作方式。第一种方式是在文本空间中进行&#xff0c;这种提示以离散的文本形式存在。第二种方式是将提示抽象成一个向量&#xff0c;在特征空间中进行操作&#xff0c;这种提示是抽象…

android安卓看点新闻课设

一、系统需求分析 1.1 引言 1.1.1 开发目的 看点新闻App的开发是为了实时查看最新消息以了解社会动态&#xff0c;增长知识&#xff0c;增广见闻&#xff0c;顺便娱乐一下内心世界来放松自己。 1.1.2 开发背景 随着新媒体的崛起&#xff0c;纸媒遭受到重大打击&#xff0c…

vscode安装vue3+elment-plus

1.用vscode打开打算创建项目的目录 2.命令行中运行以下命令 npm create vuelatest3.设置好项目名称 4.执行以下命令 cd <your-project-name>5.执行以下命令 cnpm install6.执行以下命令安装elment-plus cnpm install element-plus --save7.执行以下命令 npm run dev…

Vuepress 2从0-1保姆级进阶教程——美化与模板

Vuepress 2 专栏目录 1. 入门阶段 Vuepress 2从0-1保姆级入门教程——环境配置篇Vuepress 2从0-1保姆级入门教程——安装流程篇Vuepress 2从0-1保姆级入门教程——文档配置篇Vuepress 2从0-1保姆级入门教程——范例与部署 2.进阶阶段 Vuepress 2从0-1保姆级进阶教程——全文搜索…

使用unplugin-auto-import页面不引入api飘红

解决方案&#xff1a;. tsconfig.json文件夹加上 {"compilerOptions": {"target": "ES2020","useDefineForClassFields": true,"module": "ESNext","lib": ["ES2020", "DOM", &q…

Python程序设计 循环结构(二)

1.斐波那契数列 编写一个能计算斐波那契数列中第x个数的小程序。斐波那契数列&#xff08;Fibonacci sequence&#xff09;&#xff0c;又称黄金分割数列、 因数学家莱昂纳多斐波那契&#xff08;Leonardoda Fibonacci&#xff09;以兔子繁殖为例子而引入&#xff0c;故又称为…

分类任务中的评估指标:Accuracy、Precision、Recall、F1

概念理解 T P TP TP、 T N TN TN、 F P FP FP、 F N FN FN精度/正确率&#xff08; A c c u r a c y Accuracy Accuracy&#xff09; 二分类查准率 P r e c i s i o n Precision Precision&#xff0c;查全率 R e c a l l Recall Recall 和 F 1 − s c o r e F1-score F1−s…

Collection与数据结构 数据结构预备知识(一) :集合框架与时间空间复杂度

1.集合框架 1.1 什么是集合框架 Java集合框架,又被称为容器,是定义在java.util包下的一组接口和接口实现的一些类.其主要的表现就是把一些数据放入这些容器中,对数据进行便捷的存储,检索,管理.集合框架底层实现原理其实就是各种数据结构的实现方法,所以在以后的学习中,我们会…