本次实训主要是对小费数据集进行数据分析与可视化。
实验的小费数据集来源于Python库Seaborn中自带的数据,已经将其转换为Excel类型数据集
部分截图:
1、导入模块
#导入实验需要的包
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei']#用来显示中文标签
plt.rcParams['axes.unicode_minus']=False#用来显示负号
%matplotlib inline
2、获取数据
导入数据,并且显示前5行。
fdata=pd.read_excel('C:/Users/leglon/Desktop/ch4/tips.xls')#读取数据,在此需要导入xls的环境
fdata.head()#输出前五行
在这里要提前安装好xlrd的环境,不然容易出现错误:ImportError: Missing optional dependency ‘xlrd’. Install xlrd >= 1.0.0 for Excel support Use pip or conda to install xlrd.
解决这个方法只要我们打开 cmd 输入:pip install xlrd
,等待好安装就可以。或者去anaconda里下载安装xlrd环境。
步骤:anaconda—>Environments -->tensorflow—>Not installed,输入:xlrd,跳出选项勾选,然后点击Apply。再次打开就可以了。
3、查看数据的信息
fdata.describe()#查看数据描述
#修改为汉字,并且显示前五行数据
fdata.rename(columns={'total_bill':'消费总额','tip':'小费','sex':'性别','smoker':'是否吸烟','day':'星期','time':'聚餐时间段','size':'人数'},inplace=True)
fdata.head()
#人均消费,显示前五行
fdata['人均消费']=round(fdata['消费总额']/fdata['人数'],2)
fdata.head()
6、查找数据集中吸烟男性人均消费大于15的数据
#查询吸烟男性中消费大于15的数据
fdata.query('是否吸烟=="Yes"&性别=="Male"&人均消费>15')
fdata.plot(kind='scatter',x='消费总额',y='小费')#查看消费总额与小费的关系
从图中可以看出小费于消费总额为正相关关系。
8、查看是否吸烟与小费的关系
fdata.plot(kind='scatter',x='是否吸烟',y='小费')#查看是否吸烟与小费的关系
9、对比男性与女性的消费总额数据
fdata.groupby('性别')['消费总额'].mean()
看得出男性的消费比女性多。
10、查看性别的慷慨程度对比
#查看性别的慷慨程度对比
fdata.groupby('性别')['小费'].mean()
#分析星期与小费的关系
print(fdata['星期'].unique())#显示星期的取值
r=fdata.groupby('星期')['小费'].mean()
fig=r.plot(kind='bar',x='星期',y='小费',fontsize=12,rot=30)
fig.axes.title.set_size(16)
从图中可以分析出,星期六与星期天给的小费比星期四和星期五多。
12、分析性别与吸烟组合的慷慨度
#分析性别与吸烟组合的慷慨度
r=fdata.groupby(['性别','是否吸烟',])['小费'].mean()
fig=r.plot(kind='bar',x=['性别','是否吸烟'],y='小费',fontsize=12,
rot=30)
fig.axes.title.set_size(16)
可以看出不吸烟的男性更慷慨,给的小费更多;不吸烟的女性比吸烟的女性更慷慨。
13、分析聚餐时间段与小费的关系
#分析聚餐时间段与小费的关系
r=fdata.groupby(['聚餐时间段'])['小费'].mean()
fig=r.plot(kind='bar',x='聚餐时间段',y='小费',fontsize=15,rot=30)
fig.axes.title.set_size(16)
可以从图中发现,晚餐时间段给的小费比午餐的多。
14、分析人数与小费的关系
#分析人数与小费的关系
r=fdata.groupby(['人数',])['小费'].mean()
fig=r.plot(kind='bar',x='人数',y='小费',fontsize=15,rot=30)
fig.axes.title.set_size(16)
从图中可以看出,聚餐人数越多给的小费越多。
学习数据可视化对我们有着极大的作用,我们可以通过分析数据得到一些重要的信息,让我们更了解事件和让我们对事件有更多的应对方法。