【可视化】小费(tips)数据集分析

数据集

数据集:资料,提取码:7bxb

导包和准备工作

# -*- coding: utf-8 -*
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import matplotlib

# 导入小费数据集
df = pd.read_excel('./tips.xls')

# 设置中文字体
matplotlib.rcParams['font.sans-serif'] = ['SimHei']  
matplotlib.rcParams['font.family']='sans-serif'  

1、查看数据的描述信息

# 1、查看数据的描述信息

# 查看数据的统计情况
print(df.describe())
# 查看数据的行列属性
print(df.info())

在这里插入图片描述

2、修改列名为汉字 并显示前5条数据

# 2、修改列名为汉字 并显示前5条数据
df.columns=['总金额','小费金额','性别','吸烟','日期','时间','尺寸']
print(df.head(5))

在这里插入图片描述

3、分析小费金额和总金额的关系

# 3、分析小费金额和总金额的关系
# 散点图
df.plot.scatter(x='总金额', y='小费金额', color='DarkBlue', label='小费金额与总金额的关系');
plt.show()

在这里插入图片描述
从图中可以看出,小费金额与消费金额存在着正相关的关系,即消费的金额越多,给的小费也越多。

4、分析男性顾客和女性顾客谁更慷慨

# 4、分析男性顾客和女性顾客谁更慷慨
# 柱状图 
average_tip  = df.groupby('性别')['小费金额'].mean()
average_tip.plot.bar()
plt.show()

在这里插入图片描述
从图中可以看出,男性给的小费会略高于女性

5、分析日期和小费的关系

# 5、分析日期和小费的关系
# 柱状图 
average_tip  = df.groupby('日期')['小费金额'].mean()
average_tip.plot.bar()
plt.show()

在这里插入图片描述
从图中可以看出,周日的小费给的最多

6、分析性别+抽烟的组合因素对慷慨度的影响

# 6、分析性别+抽烟的组合因素对慷慨度的影响

# 构建慷慨度指标
df['慷慨度']=df['小费金额']/(df['总金额']+df['小费金额'])


# 构建性别+抽烟的组合因素 
def trans (x,y):
    if x and y: return '男性抽烟'
    elif x: return '男性不抽烟'
    elif y: return '女性抽烟'
    else :return '女性不抽烟'
mapping = {'Female':False,'Male':True,'No':False,'Yes':True}
five = df[['性别','吸烟','慷慨度']].replace(mapping)
five['影响因素'] = five.apply(lambda x:trans(x['性别'],x['吸烟']),axis=1)

# 绘制柱状图
five = five.groupby('影响因素')['慷慨度'].mean()
five.plot.bar()
plt.show()

在这里插入图片描述
从图中可以看出,抽烟女性平均最慷慨值

7、分析据餐时间段和小费的关系

# 7、分析据餐时间段和小费的关系
# 柱状图 
seven = df.groupby('时间')['小费金额'].mean()
seven.plot.bar()
plt.show()

在这里插入图片描述
从图中可以看出,吃晚餐的时候,给的小费会多一些

  • 11
    点赞
  • 97
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
当今Python中最流行的数据可视化库是 Matplotlib 和 Seaborn。Matplotlib是一个功能强大的绘图库,可以创建各种类型的图表,而 Seaborn 则是基于 Matplotlib 的高级数据可视化库,提供了更简单、更美观的绘图风格以及更多的统计图表。 下面是一些 Python 数据可视化分析案例的详解: 1. 折线图 折线图是一种经典的数据可视化方式,可以用于表示随时间变化的数据。下面是一个使用 Matplotlib 绘制折线图的例子: ```python import matplotlib.pyplot as plt x = [1, 2, 3, 4, 5] y = [3, 7, 2, 5, 9] plt.plot(x, y) plt.show() ``` 上述代码将绘制一个简单的折线图,横坐标是 x 列表,纵坐标是 y 列表。 2. 散点图 散点图是一种用于表示两个变量之间关系的方式,通常用于探索数据中的趋势和异常值。下面是一个使用 Seaborn 绘制散点图的例子: ```python import seaborn as sns tips = sns.load_dataset("tips") sns.scatterplot(x="total_bill", y="tip", data=tips) ``` 上述代码将绘制一个餐厅账单和小费之间的散点图,横坐标是账单总金额,纵坐标是小费金额。 3. 直方图 直方图是一种用于表示连续变量分布的方式,通常用于了解数据的分布情况。下面是一个使用 Matplotlib 绘制直方图的例子: ```python import matplotlib.pyplot as plt import numpy as np data = np.random.randn(1000) plt.hist(data, bins=30) plt.show() ``` 上述代码将绘制一个随机生成的数据集的直方图,bin 参数指定直方图的柱数。 4. 箱线图 箱线图是一种用于表示数据分布和异常值的方式,通常用于比较多个组之间的差异。下面是一个使用 Seaborn 绘制箱线图的例子: ```python import seaborn as sns tips = sns.load_dataset("tips") sns.boxplot(x="day", y="total_bill", data=tips) ``` 上述代码将绘制一个表示不同周几账单总金额分布情况的箱线图。 5. 热力图 热力图是一种用于表示数据密度的方式,通常用于探索数据的相关性。下面是一个使用 Seaborn 绘制热力图的例子: ```python import seaborn as sns flights = sns.load_dataset("flights").pivot("month", "year", "passengers") sns.heatmap(flights, annot=True, fmt="d", cmap="YlGnBu") ``` 上述代码将绘制一个表示航班乘客数量的热力图,横坐标是年份,纵坐标是月份。 以上是一些 Python 数据可视化分析的例子,您可以根据具体需求选择不同的图表类型和绘图库。同时,这些例子只是入门级别,数据可视化的应用场景非常广泛,您可以在实践中不断发掘更多的用法。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值