【数据分析项目实战】学生校园消费数据分析与可视化
学生校园消费数据分析与可视化
引言
校园消费数据是反映学生日常生活和消费习惯的重要指标,通过对这些数据的深入分析,可以帮助学校更好地了解学生需求,优化校园服务设施,提升学生生活质量。本文基于真实的学生校园消费数据,通过数据清洗、预处理和可视化分析,揭示学生消费行为的规律和特点。
数据获取与预处理
数据来源
本次分析的数据来源于三个CSV文件(data1.csv、data2.csv、data3.csv),包含了学生的基本信息和消费记录。
数据清洗与预处理
在进行数据分析之前,我们首先对原始数据进行了清洗和预处理,主要包括以下步骤:
- 读取并整合三个CSV文件中的数据
- 处理缺失值,对于关键信息缺失的记录进行删除或填充
- 处理异常值,识别并移除明显不合理的消费记录
- 转换数据格式,确保日期、金额等字段格式统一
- 将处理后的数据保存为
processed_student_data.csv文件
数据结构说明
处理后的数据集包含以下主要字段:
CardNo:学生校园卡编号PeoNo:学生学号Date:消费日期和时间Money:消费金额Type:交易类型(消费/存款)Dept:消费地点Sex:性别Major:专业
数据分析与可视化
1. 消费时间趋势分析
通过分析学生消费金额随时间的变化趋势,我们可以了解学生在不同时间段的消费规律。

分析结论:从消费时间趋势图可以看出,学生消费金额呈现出明显的周期性波动。工作日(周一至周五)的消费金额明显高于周末,这与学生的上课时间安排和校园活动规律相符。此外,4月18日出现了一个明显的消费高峰,可能与学校的特殊活动或节假日有关。
2. 消费地点分布分析
分析学生在不同地点的消费情况,可以帮助学校了解各服务设施的使用情况,优化资源配置。

分析结论:从消费地点分布对比图可以看出,第四食堂的总消费金额最高,达到91130.2元,而第二食堂的消费次数最多,达到31197次。这表明不同食堂在学生中的受欢迎程度和消费特点存在差异。学校可以根据这些数据调整各食堂的服务内容和运营时间,以更好地满足学生需求。
3. 男女生消费差异分析
分析男女生在消费金额上的差异,可以了解不同性别学生的消费习惯和偏好。

分析结论:从男女生消费占比饼图可以看出,女生的总消费金额略高于男生,分别为83257.76元和80083.13元,占比约为51%和49%。这一差异相对较小,说明在校园消费方面,男女生的整体消费水平较为接近。
4. 专业消费差异分析
分析不同专业学生的消费情况,可以了解各专业学生的消费特点和需求差异。

分析结论:从专业消费差异对比图可以看出,不同专业学生的消费金额和消费次数存在明显差异。18软件技术专业的总消费金额最高,达到11414.16元,而18连锁经营专业的消费次数最多,达到3024次。这可能与各专业的学生人数、课程安排和生活习惯等因素有关。
5. 消费金额分布分析
分析学生消费金额在不同区间的分布情况,可以了解学生的消费结构和消费水平。

分析结论:从消费金额分布柱状图可以看出,学生的消费主要集中在0-10元的区间内,其中0-5元区间的消费次数最多,达到6.9万次,5-10元区间的消费次数为2.5万次。这表明学生的日常消费以小额消费为主,符合校园生活的特点。
结论与建议
主要发现
- 学生消费金额呈现明显的周期性波动,工作日消费高于周末
- 不同食堂的消费金额和消费次数存在差异,第四食堂消费金额最高,第二食堂消费次数最多
- 男女生的消费水平较为接近,女生略高于男生
- 不同专业学生的消费情况存在明显差异,软件技术专业消费金额最高,连锁经营专业消费次数最多
- 学生消费主要集中在0-10元的小额消费区间
对学校管理的建议
- 根据消费时间趋势,合理安排各服务设施的运营时间,特别是在消费高峰期增加服务人员和窗口
- 根据各食堂的消费特点,调整菜品结构和价格策略,优化资源配置
- 关注不同专业学生的需求差异,提供更有针对性的服务
- 针对学生小额消费为主的特点,优化支付方式,提高消费便利性
代码实现
数据读取与预处理代码
import pandas as pd
import numpy as np
# 读取三个CSV文件
df1 = pd.read_csv('data1.csv')
df2 = pd.read_csv('data2.csv')
df3 = pd.read_csv('data3.csv')
# 整合数据
data = pd.concat([df1, df2, df3], ignore_index=True)
# 处理缺失值
data = data.dropna(subset=['CardNo', 'Money', 'Date']) # 删除关键信息缺失的记录
# 处理异常值
data = data[(data['Money'] > 0) & (data['Money'] < 1000)] # 过滤不合理的消费金额
# 转换数据格式
data['Date'] = pd.to_datetime(data['Date'])
# 保存处理后的数据
data.to_csv('processed_student_data.csv', index=False)
数据分析与可视化代码
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from datetime import datetime
# 读取处理后的数据
data = pd.read_csv('processed_student_data.csv')
data['Date'] = pd.to_datetime(data['Date'])
# 1. 消费时间趋势分析
daily_consumption = data.groupby(data['Date'].dt.date)['Money'].sum()
plt.figure(figsize=(12, 6))
plt.plot(daily_consumption.index, daily_consumption.values)
plt.title('学生校园消费时间趋势图')
plt.xlabel('日期')
plt.ylabel('消费金额(元)')
plt.xticks(rotation=45)
plt.tight_layout()
plt.savefig('消费时间趋势图.png')
# 2. 消费地点分布分析
location_consumption = data.groupby('Dept')['Money'].agg(['sum', 'count']).sort_values('sum', ascending=False).head(5)
location_consumption.plot(kind='barh', figsize=(12, 6))
plt.title('学生校园消费地点分布对比图')
plt.xlabel('金额/次数')
plt.ylabel('消费地点')
plt.tight_layout()
plt.savefig('消费地点分布对比图.png')
# 3. 男女生消费差异分析
sex_consumption = data.groupby('Sex')['Money'].sum()
plt.figure(figsize=(8, 8))
plt.pie(sex_consumption.values, labels=sex_consumption.index, autopct='%1.1f%%')
plt.title('男女生消费占比饼图')
plt.axis('equal')
plt.tight_layout()
plt.savefig('男女生消费占比饼图.png')
# 4. 专业消费差异分析
major_consumption = data.groupby('Major')['Money'].agg(['sum', 'count']).sort_values('sum', ascending=False).head(10)
major_consumption.plot(kind='barh', figsize=(12, 8))
plt.title('专业消费差异对比图')
plt.xlabel('金额/次数')
plt.ylabel('专业')
plt.tight_layout()
plt.savefig('专业消费差异对比图.png')
# 5. 消费金额分布分析
bins = [0, 5, 10, 15, 20, 30, 50, 100]
labels = ['0-5元', '5-10元', '10-15元', '15-20元', '20-30元', '30-50元', '50-100元']
data['AmountRange'] = pd.cut(data['Money'], bins=bins, labels=labels, right=False)
amount_distribution = data['AmountRange'].value_counts().sort_index()
plt.figure(figsize=(12, 6))
plt.bar(amount_distribution.index, amount_distribution.values / 10000) # 转换为万次
plt.title('学生校园消费金额分布柱状图')
plt.xlabel('消费金额区间')
plt.ylabel('消费次数(万次)')
plt.tight_layout()
plt.savefig('消费金额分布柱状图.png')
通过以上分析和代码实现,我们对学生校园消费数据有了全面的了解。这些分析结果可以为学校的管理决策提供有力支持,帮助学校更好地满足学生需求,提升校园服务质量。
赛题数据下载:
https://download.csdn.net/download/qq_51751200/92212043
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐

所有评论(0)