Python综合案例-小费数据集的数据分析(详细思路+源码解析)

news2024/11/16 5:35:53

目录

1. 请导入相应模块并获取数据。导入待处理数据tips.xls,并显示前5行。

2、分析数据

 3.增加一列“人均消费”

4查询抽烟男性中人均消费大于5的数据

 5.分析小费金额和消费总额的关系,小费金额与消费总额是否存在正相关关系。画图观察。

6分析男女顾客哪个更慷慨,就是分组看看男性还是女性的小费平均水平更高

7.分析日期和小费的关系,请绘制直方图。

8、绘图分析性别+抽烟的组合对慷慨度的影响

 9.绘图分析聚餐时间段与小费数额的关系

总结

 


本实训主要对小费数据进行数据的分析与可视化,用到的数据放在文件中。


1. 请导入相应模块并获取数据。导入待处理数据tips.xls,并显示前5行。

# 导入相应模块
import pandas as pd
import matplotlib.pyplot as plt

# 导入数据并显示前5行
tips_data = pd.read_excel('tips.xls')
print(tips_data.head())


2、分析数据

1、查看数据的描述信息

2、修改列名为汉字(total_bill--消费总额,tip--小费,sex--性别,smoker--是否抽烟,day--星期,time--聚餐时间段,size--人数),并显示前5行数据。

# 导入数据并显示描述信息
print(tips_data.describe())

# 修改列名并显示前5行
tips_data.columns = ['消费总额', '小费', '性别', '是否抽烟', '星期', '聚餐时间段', '人数']
print(tips_data.head())


 3.增加一列“人均消费”

# 导入数据并增加“人均消费”列
tips_data['人均消费'] = tips_data['消费总额'] / tips_data['人数']
print(tips_data.head())


4查询抽烟男性中人均消费大于5的数据

# 导入数据并查询抽烟男性中人均消费大于5的数据
smoking_male = tips_data[(tips_data['是否抽烟']=='Yes') & (tips_data['性别']=='Male')]
result = smoking_male[smoking_male['消费总额'] / smoking_male['人数'] > 5]
print(result)


 5.分析小费金额和消费总额的关系,小费金额与消费总额是否存在正相关关系。画图观察。

# 导入数据并绘制散点图
x = tips_data['消费总额']
y = tips_data['小费']
plt.scatter(x, y)
plt.xlabel('Total bill')
plt.ylabel('Tip')
plt.show()

可以看出,小费金额似乎随着消费总额的增加而变大,这表明小费金额和消费总额存在一定程度的正相关关系,但不是非常强烈的正相关关系。


6分析男女顾客哪个更慷慨,就是分组看看男性还是女性的小费平均水平更高

# 导入数据并计算男女顾客的小费平均值
gender_tip_mean = tips_data.groupby('性别')['小费'].mean()
print(gender_tip_mean)
 

可以看出,在这个数据集中,男性顾客的小费平均水平略高于女性顾客。因此,从这份数据来看,男性顾客可能更慷慨一些。


7.分析日期和小费的关系,请绘制直方图。

# 导入数据并绘制直方图
grouped = tips_data.groupby('星期')['小费']
hist_data = [grouped.get_group(day) for day in grouped.groups]
plt.hist(hist_data, bins=10, histtype='bar', stacked=True)
plt.legend(grouped.groups.keys())
plt.xlabel('Tip amount')
plt.ylabel('Frequency')
plt.show()

 


8、绘图分析性别+抽烟的组合对慷慨度的影响

# 导入数据并绘制箱线图
fig, ax = plt.subplots()
ax.boxplot([tips_data[tips_data['性别']=='Male'][tips_data['是否抽烟']=='Yes']['小费'],
            tips_data[tips_data['性别']=='Male'][tips_data['是否抽烟']=='No']['小费'],
            tips_data[tips_data['性别']=='Female'][tips_data['是否抽烟']=='Yes']['小费'],
            tips_data[tips_data['性别']=='Female'][tips_data['是否抽烟']=='No']['小费']],
           labels=['Male smoker', 'Male non-smoker', 'Female smoker', 'Female non-smoker'])
plt.xlabel('Gender and smoking')
plt.ylabel('Tip amount')
plt.title('Effect of gender and smoking on tipping behavior')
plt.show()

 

可以看出,男性吸烟者给出的小费位于所有组合中的最高水平,而女性非吸烟者给出的小费位于所有组合中的最低水平。因此,在这个数据集中,男性吸烟者可能更加慷慨,而女性非吸烟者可能不太慷慨。 


 9.绘图分析聚餐时间段与小费数额的关系

# 导入数据并绘制散点图
colors = ['blue', 'green', 'red', 'purple']
grouped = tips_data.groupby('聚餐时间段')
for i, (key, group) in enumerate(grouped):
    plt.scatter(group['消费总额'], group['小费'], label=key, color=colors[i])
plt.xlabel('Total bill amount')
plt.ylabel('Tip amount')
plt.title('Relationship between meal time and tipping behavior')
plt.legend()
plt.show()

 

 可以看出,午餐和晚餐的小费数额大致呈正相关,而早餐和夜宵的小费数额较为稀疏,无明显的相关性。因此,从这份数据来看,午餐和晚餐似乎更有可能得到较高的小费水平。

总结

这是一个数据分析和可视化的过程,其主要步骤如下:

  1. 导入所需的模块,包括Pandas和Matplotlib。

  2. 使用Pandas读取并处理数据集,包括修改列名、计算人均消费、查询特定条件下的数据等等。

  3. 利用Matplotlib绘制各种类型的图表,包括散点图、直方图、箱线图等等,从中发现顾客的一些特征与小费数额之间的关系。

  4. 对绘制的图表进行美化和定制,包括添加标签、标题、轴标签、图例等等。

  5. 考虑实际情况和边界条件,确保代码能够稳定、高效地工作。

这个过程涉及到多种数据分析和可视化技术,能够帮助我们更好地理解数据,发现其中的规律和趋势,为进一步的研究和决策提供参考。同时也需要注意数据质量和代码效率,避免出现意想不到的问题。

源代码下载:

visualization.py · 蒋言希/小蒋同学的CSDN - Gitee.comhttps://gitee.com/jiang-yanxi123/xiaojiangs---csdn/blob/master/visualization.py

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

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

相关文章

chatGPT写文章攻略-用chatGPT写网文

chatGPT可以写中文吗 ChatGPT可以写中文。在过去的几年中,许多深度学习机器翻译模型已经开始探索中英文翻译、去噪声、语音识别等任务,并且在这些任务中ChatGPT具有最先进的表现。 目前,例如GPT-3和GPT-2都可以用来生成中文文本。为此&…

以太坊上海升级,DeFi 3.0的序章

引言 距离以太坊Shapella升级(也曾被称为上海升级)仅剩一天的时间!自2015年以太坊上线以来,它已成为世界排名第二的加密虚拟资产,以太坊诞生于行业的意义在于它能够让开发者构建智能合约和去中心化应用(DAp…

Jumpserver与Freeipa集成(以及其他配置)

背景: jumpserver的安装参照:jumpserver的简单安装使用,Freeipa的安装参照:Freeipa的简单搭建配置。准备将Freeipa与Jumpserver集成。其实Freeipa搭建后linux客户端如果安装了Freeipa client。也能完成用户的授权权限管理了&…

肖 sir_就业课__005项目数据

项目数据 一、项目周期 (1)新项目:从无到有,从项目的开始到上线的时间 时间长:3个月、6个月、1年、2年 (2)老项目:迭代项目 迭代周期:1个月、2个月、3个月迭代、 &#…

现在是香港推动Web3的“正确时机” 将采取监管与发展并重策略

香港财政司司长陈茂波在香港特区政府网站发表司长随笔《发展Web3—守正创新 稳慎前行》,提出为了让Web3稳慎走好创新发展的道路,政府将采取“适当监管”和“推动发展”两者并重的策略,确保虚拟资产行业可持续和负责任发展。 此前,…

java_集合

1.集合 集合分为单列集合(collection)和双列集合(map). 单列就是每个位置只有一个值,双列则是每个位置都是一对键值对,类似于python的字典。 2.collection 其中,collection又可以分为List…

全国大学生智能汽车竞赛——安装Ubuntu操作系统(双系统)

1.1 电脑分区 1.1.1 分区原因 由于我们想要在电脑上同时安装Windows和Ubuntu系统,所以就要在window使用的内存中划分出来一段用来给Ubuntu系统使用,相当于一个应用程序一样 1.1.2 分区步骤 1.右击此电脑,点击管理,然后双击左侧…

【刷题笔记】--dp--376. 摆动序列122. 买卖股票的最佳时机 II

感觉自己dp还不是很会(/(ㄒoㄒ)/~~ 写dp题的步骤:①通过定义子问题,确定dp[ ] or dp[ ][ ] 表示的含义 ②写出子问题的递归关系 ③确定初始条件 题目: 思路: ①确定dp的含义:dp[i]表示 到i位置&#x…

网络信息安全(三层设备部署DHCP服务器与DHCP中继、ICMP协议)

文章目录三层路由器部署DHCP服务器配置trunkVLAN创建将端口加入对应vlan路由创建子接口路由器创建地址池服务器配置静态IPDHCP服务器部署创建作用域在三层设备配置DHCP中继DHCP中继原理ICMP协议概述用途封装格式三层路由器部署DHCP服务器 配置trunk VLAN创建 这里以S1为例&…

Vulnhub:Digitalworld.local (Development)靶机

kali:192.168.111.111 靶机:192.168.111.130 信息收集 端口扫描 nmap -A -v -sV -T5 -p- --scripthttp-enum 192.168.111.130 查看网站首页源码 访问development目录,提示存在一个流量包 查看流量包发现另一个网站路径:/devel…

多模态之论文笔记ViLT

文章目录ViLT: Vision-and-Language Transformer Without Convolution or Region Supervision一. 简介1.1 摘要1.2 文本编码器,图像编码器,特征交互复杂度分析1.2 特征交互方式分析1.3 图像特征提取分析二. 方法 Vision-and-Language Transformer2.1. 方…

【高危】Apache Linkis JDBC EngineConn 插件<1.3.2 存在反序列化漏洞

漏洞描述 Apache Linkis 是一个用于将上层应用与底层数据引擎解耦,提供标准化接口的中间件。 该项目受影响版本存在反序列化漏洞,由于ConnectionManager.java中未对dbUrl、username、password等参数进行充分过滤,当恶意用户完全控制应用程序…

缘起|蚂蚁应用级服务发现的实践之路

文|肖健(花名:昱恒)蚂蚁集团技术专家、SOFARegistry Maintainer专注于服务发现领域,目前主要从事蚂蚁注册中心 SOFARegistry 的设计和研发工作。本文 8339 字 阅读 15 分钟PART. 1前言什么是服务发现?我们今…

Python人工智能在气象中的实践技术应用

专题一 Python 和科学计算基础 1.1 Python 入门和安装 1.1.1 Python 背景及其在气象中的应用 1.1.2 Anaconda 解释和安装以及 Jupyter 配置1.1.3 Python 基础语法 1.2 科学数据处理基础库 1.2.1 Numpy 库1.2.2 Pandas 库1.2.3 Scipy 库 1.2.4 Matplotlib 和 Cartopy 库 …

thinkphp6多应用模块配置使用

1.安装thinkphp6 6.0之前安装都是从Git或者直接下载安装包进行安装,从6.0开始安装方式就改成了composer进行安装了,安装命令如下: 稳定版:composer create-project topthink/think tp 开发版:composer create-projec…

SOLIDWORKS官方认证考试

SOLIDWORKS官方认证考试: CSWA认证 CSWP认证 CSWPA认证 CSWE认证 SOLIDWORKS认证考试是达索SOLIDWORKS公司推出的全球性认证考试项目,是作为衡量您所具备的SOLIDWORKS应用专长与能力的一种测试和认可,主要考察对设计、仿真一体化、机电一体…

Hadoop 生态圈及核心组件简介Hadoop|MapRedece|Yarn

文章目录大数据时代HadoopHadoop概述Hadoop特性优点Hadoop国内外应用Hadoop发行版本Hadoop集群整体概述HDFS分布式文件系统传统常见的文件系统数据和元数据HDFS核心属性HDFS简介HDFS shell操作Map Reduce分而治之理解MapReduce思想分布式计算概念MapReduce介绍MapReduce产生背景…

低代码,是稳打稳扎还是饮鸩止渴?

2023年,业内对低代码的发展充满了想象。 人们认为,未来低代码它的商业价值不可估量。 据Gartner的最新报告显示,到2023年,全球低代码开发技术市场规模预计将达到269亿美元,比2022年增长19.6%。 随着数字化进入深水区&a…

数据仓库、数据集市、数据湖,你的企业更适合哪种数据管理架构?

建设企业级数据平台,首先需要了解企业数据,确认管理需求,并选择一个数据管理架构。那么面对纷繁复杂的数据来源,多元化的数据结构,以及他们的管理使用需求,企业数据平台建设该从何处入手呢?哪个…

Zabbit

目录 一、zabbix概述 zabbix是什么 主要特点 运行机制 zabbix监控原理 zabix常见的五个程序 zabbix端口号 架构 二、安装 zabbix 5.0 1、部署zabbix服务端(端口号10051) 1、关闭防火墙、修改主机名 2、下载zabbix源 3、 更换为阿里源 4、安…