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

目录

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

  • 8
    点赞
  • 65
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
好的,你想了解银行营销数据分析Python+k-means实现方法,是吗? 首先,K-means是一种聚类算法,可以将数据样本划分为K个不同的类别。在银行营销数据分析中,可以使用K-means来识别客户群体,以便更好地定位和营销。 以下是使用Python和K-means实现银行营销数据分析的一些步骤: 1. 导入所需的库和数据集,例如pandas、numpy和sklearn。 ``` import pandas as pd import numpy as np from sklearn.cluster import KMeans ``` 2. 加载数据集并进行必要的数据预处理,例如删除缺失值、转换数据类型等。 ``` data = pd.read_csv('bank_marketing.csv') data.dropna(inplace=True) data['age'] = data['age'].astype('int64') ``` 3. 选择需要用于聚类的特征,并进行必要的数据标准化。 ``` X = data[['age', 'balance', 'duration']] X = (X - X.mean()) / X.std() ``` 4. 创建K-means模型并训练模型。 ``` kmeans = KMeans(n_clusters=3, random_state=0) kmeans.fit(X) ``` 5. 使用模型对数据进行分类,并将结果添加到原始数据集中。 ``` data['cluster'] = kmeans.labels_ ``` 6. 可视化聚类结果,例如使用散点图。 ``` import matplotlib.pyplot as plt plt.scatter(data['balance'], data['duration'], c=data['cluster']) plt.xlabel('Balance') plt.ylabel('Duration') plt.show() ``` 这些步骤可以帮助你使用Python和K-means实现银行营销数据分析。当然,在实际应用中可能需要更多的数据处理和模型优化等步骤。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Tech行者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值