文章目录
数据集
数据集:资料,提取码: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()
从图中可以看出,吃晚餐的时候,给的小费会多一些