大数据毕设 - 校园卡数据分析与可视化(python 大数据)
文章目錄
- 0 前言
- 1 課題介紹
- 2 數(shù)據(jù)預(yù)處理
- 2.1 數(shù)據(jù)清洗
- 2.2 數(shù)據(jù)規(guī)約
- 3 模型建立和分析
- 3.1 不同專業(yè)、性別的學(xué)生與消費(fèi)能力的關(guān)系
- 3.2 消費(fèi)時間的特征分析
- 4 Web系統(tǒng)效果展示
- 5 最后
0 前言
🔥 Hi,大家好,這里是丹成學(xué)長的畢設(shè)系列文章!
🔥 對畢設(shè)有任何疑問都可以問學(xué)長哦!
這兩年開始,各個學(xué)校對畢設(shè)的要求越來越高,難度也越來越大… 畢業(yè)設(shè)計耗費(fèi)時間,耗費(fèi)精力,甚至有些題目即使是專業(yè)的老師或者碩士生也需要很長時間,所以一旦發(fā)現(xiàn)問題,一定要提前準(zhǔn)備,避免到后面措手不及,草草了事。
為了大家能夠順利以及最少的精力通過畢設(shè),學(xué)長分享優(yōu)質(zhì)畢業(yè)設(shè)計項目,今天要分享的新項目是
🚩 大數(shù)據(jù)校園卡數(shù)據(jù)分析
🥇學(xué)長這里給一個題目綜合評分(每項滿分5分)
- 難度系數(shù):4分
- 工作量:4分
- 創(chuàng)新點(diǎn):3分
🧿 選題指導(dǎo), 項目分享:
https://gitee.com/yaa-dc/BJH/blob/master/gg/cc/README.md
1 課題介紹
近年來,大數(shù)據(jù)的受關(guān)注程度越來越高。如何對大數(shù)據(jù)流進(jìn)行抽取轉(zhuǎn)換成有用的信息并應(yīng)用于各行各業(yè)變得越來越重要。如今,校園一卡通系統(tǒng)在高校應(yīng)用十分廣泛,大部分高校主要利用校園一卡通對校園中的各類消費(fèi)閱、補(bǔ)助領(lǐng)取等進(jìn)行統(tǒng)一管理。通過數(shù)據(jù)分析算法,對大學(xué)生校內(nèi)消費(fèi)記錄進(jìn)行整理、分類、預(yù)測,從而整體反應(yīng)學(xué)生在校消費(fèi)情況,形成量化的評判標(biāo)準(zhǔn),同時也為今后的貧困生資助管理工作提供可靠的數(shù)據(jù)支持,輔助完成貧困生的相關(guān)工作。
2 數(shù)據(jù)預(yù)處理
在進(jìn)行數(shù)據(jù)挖掘或者數(shù)據(jù)分析之前,需要對“臟數(shù)據(jù)” 數(shù)據(jù)進(jìn)行數(shù)據(jù)預(yù)處理,一般采用數(shù)據(jù)清理、數(shù)據(jù)集成、數(shù)據(jù)變換等方式,已獲得更好的分析效果。
2.1 數(shù)據(jù)清洗
由于數(shù)據(jù)庫中有著大量的數(shù)據(jù)表,我們獲取到的數(shù)據(jù)表中會存在著異常數(shù)據(jù),如數(shù)據(jù)不合法與常識不符,同一個字段屬性值來源于多張數(shù)據(jù)表且數(shù)值不一樣等。數(shù)據(jù)預(yù)處理主要去處可忽略的字段、忽略空缺記錄、可處理噪聲的數(shù)據(jù)、可刪除的數(shù)據(jù)等。由于部分校園卡用戶,如教職工、研究生等,消費(fèi)時具有很強(qiáng)的隨機(jī)性和離散型。同時,為了保護(hù)隱私,對姓名、學(xué)號等屬性要做脫敏和隱私處理。
2.2 數(shù)據(jù)規(guī)約
預(yù)處理后的數(shù)據(jù)不一定適合直接使用,因此需要對數(shù)據(jù)進(jìn)行集成和變換,將多個數(shù)據(jù)庫中提取出的數(shù)據(jù)項整合到一起,組成新的數(shù)據(jù)集環(huán)境,并經(jīng)過詳細(xì)對比和篩選解決數(shù)據(jù)不一致和數(shù)據(jù)冗余等問題。為了適合分析,我們要對數(shù)據(jù)進(jìn)行離散化和概念分層處理。
3 模型建立和分析
通過建立消費(fèi)數(shù)據(jù)分析模型,對學(xué)校校園卡消費(fèi)行為進(jìn)行分析,總結(jié)學(xué)校學(xué)生消費(fèi)特征,對不同消費(fèi)類型的學(xué)生進(jìn)行用戶畫像和分類。以學(xué)生的“性別”、“專業(yè)”分類作為橫向分類,以“消費(fèi)能力(金額)”,“消費(fèi)項目”,“消費(fèi)時間”和“消費(fèi)地點(diǎn)”四個方面為縱向分類,組成分析模型。尋找消費(fèi)特征進(jìn)行進(jìn)行總結(jié),形成假設(shè)結(jié)論。
#1.總體消費(fèi)情況 #2.不同專業(yè)、性別的學(xué)生與消費(fèi)能力的關(guān)系 #3.不同性別的學(xué)生與消費(fèi)項目的關(guān)系 #4.消費(fèi)時間的特征分析 #5.消費(fèi)地點(diǎn)與門禁通過地點(diǎn)的關(guān)系分析 #6.學(xué)生消費(fèi)特征分層模型 import matplotlib.pyplot as plt expen_rec = pd.read_csv(r'C:\Users\River\Desktop\校園卡數(shù)據(jù)\expen_rec.csv',encoding='gbk') student = pd.read_csv(r'C:\Users\River\Desktop\校園卡數(shù)據(jù)\student.csv',encoding='gbk') access = pd.read_csv(r'C:\Users\River\Desktop\校園卡數(shù)據(jù)\access.csv',encoding='gbk') all_data1 = pd.merge(expen_rec,student,on ='校園卡號',how='left') all_data1.head()3.1 不同專業(yè)、性別的學(xué)生與消費(fèi)能力的關(guān)系
from pylab import * plt.rcParams['font.sans-serif']=['SimHei'] %matplotlib inline total = con_sum.groupby(['性別'])[['消費(fèi)金額']].sum() total1= con_sum.groupby(['性別'])[['消費(fèi)金額']].count() plt.subplot(121) plt.pie(total['消費(fèi)金額'],labels=total.index,autopct='%2.f%%') plt.title('男女生消費(fèi)總金額對比') plt.subplot(122) plt.pie(total1['消費(fèi)金額'],labels=total1.index,autopct='%2.f%%') plt.title('男女生人數(shù)對比') plt.show() fig1 = plt.figure(num =1, figsize=(8,4)) plt.title('各消費(fèi)等級人數(shù)') plt.xlabel('消費(fèi)等級') x1 =['(0, 100] ','(100, 150]','(150, 200] ','(200, 250]','(250, 300]','(300, 350]','(350, 400]','(400, 500]','(500, 3000]'] y1 = list(table1.values) y2 =list(table2.loc[('女',slice(None))].values) y3 =list(table2.loc[('男',slice(None))].values) plt.plot(x1,y1,label='總體') plt.plot(x1,y2,label='女生') plt.plot(x1,y3,label='男生') plt.legend(loc=2) plt.show() #分析各專業(yè)總消費(fèi)金額排列 fig2 = plt.figure(num =2, figsize=(14,6)) plt.title('各專業(yè)總消費(fèi)金額排列') plt.xlabel('專業(yè)名稱') x1=table3.index y1=table3['消費(fèi)總金額'] plt.bar(x1,y1) plt.xticks(x1,x1,rotation=45) for a,b in zip(x1,y1):plt.text(a, b+0.05, '%.0f' % b, ha='center', va= 'bottom',fontsize=9) plt.show()小結(jié):
1.該校18級學(xué)生的人均每月校園卡消費(fèi)295.96元;
2.女生人數(shù)占比59%,總消費(fèi)額占比56%,消費(fèi)總金額與性別差異不大;
3.從消費(fèi)金額級區(qū)間上看,學(xué)生的總體消費(fèi)金額主要在[200,500]的區(qū)間內(nèi),但男女生消費(fèi)存在明顯差異:女生消費(fèi)金額在[200-350]區(qū)間內(nèi)人數(shù)明顯高于男生,但隨著增加而下降,而男生在400以上的區(qū)間內(nèi)的人數(shù)高于女生。男生對校園卡消費(fèi)方式差異較大,一般不使用或者經(jīng)常使用。女生多數(shù)選擇輕度使用。
4.從各專業(yè)消費(fèi)總金額上看機(jī)械制造專業(yè)最高,機(jī)械制造(學(xué)徒)專業(yè)最低。但結(jié)合各專業(yè)的人均消費(fèi)分析,各專業(yè)的人均消費(fèi)差異很小,標(biāo)準(zhǔn)差僅為42.8。人均消費(fèi)最高的機(jī)械制造(學(xué)徒)專業(yè)因?yàn)槿藬?shù)最少僅為14人,對總體數(shù)據(jù)影響較小。可以得出:學(xué)生的校園卡消費(fèi)能力與專業(yè)無明顯區(qū)別。
3.2 消費(fèi)時間的特征分析
fig7 = plt.figure(num =7, figsize=(8,4)) mon1= time_tab.groupby(['日期'])[['消費(fèi)金額']].count() mon2= time_tab1.groupby(['日期'])[['消費(fèi)金額']].count() mon3= time_tab2.groupby(['日期'])[['消費(fèi)金額']].count() plt.title('月度消費(fèi)次數(shù)趨勢分析') plt.xlabel('日期') x1 = list(mon1.index) y1 = list(mon1.values) y2 =list(mon2.values) y3 =list(mon3.values) plt.plot(x1,y1,label='總體') plt.plot(x1,y2,label='女生') plt.plot(x1,y3,label='男生') plt.legend(loc=2) plt.show() #除個別天數(shù)外,女生均高于男生,每周之間趨勢相似 fig8 = plt.figure(num =8, figsize=(8,4)) wk1= time_tab.groupby(['星期'])[['消費(fèi)金額']].count() wk2= time_tab1.groupby(['星期'])[['消費(fèi)金額']].count() wk3= time_tab2.groupby(['星期'])[['消費(fèi)金額']].count() def autolabel(rects):for rect in rects:height = rect.get_height()plt.text(rect.get_x()+rect.get_width()/2.-0.2, 1.03*height, '%s' % float(height)) plt.title('月度消費(fèi)次數(shù)趨勢分析') plt.xlabel('星期') y1 = wk2['消費(fèi)金額'] y2 = wk3['消費(fèi)金額'] x1=range(len(y1)) x2=[i +0.35 for i in x1] a=plt.bar(x1,y1, width=0.3,label='女生',color='blue') b=plt.bar(x2,y2, width=0.3,label='男生',color='green') autolabel(a) autolabel(b) plt.legend() plt.xticks(x1,list(wk1.index),rotation=45) plt.show() #周一至周三消費(fèi)次數(shù)較高,男女生在一周內(nèi)的消費(fèi)頻率的波動沒有明顯差異1.從一個月的每天的消費(fèi)次數(shù)上看,除個別天數(shù)男女生消費(fèi)次數(shù)相近,多大多數(shù)天數(shù)的女生的消費(fèi)次數(shù)高于男生,且每周之間趨勢相似,可以得出學(xué)生日常的消費(fèi)習(xí)慣比較穩(wěn)定;
2.從每周的消費(fèi)次數(shù)匯總上看,周一至周三消費(fèi)次數(shù)較高,并且逐步下降,周末為消費(fèi)次數(shù)最低的時候。男女生在一周內(nèi)的消費(fèi)頻率的波動趨勢相同,沒有明顯差異;
3.從每天的消費(fèi)的時間段分析上看,周末的刷卡消費(fèi)次數(shù)為平常的12%。食堂可以根據(jù)數(shù)據(jù)情況,適當(dāng)安排休息,減少人力成本浪費(fèi);
4.平常時間的早、中、晚餐的用餐時間集中在7點(diǎn)、11點(diǎn)、17-18點(diǎn)時間段。周末消費(fèi)的時間相對平緩,早餐的高峰時間會延后到8點(diǎn)時間段,且持續(xù)有人員消費(fèi),中餐的用餐時間也會有部分后延到12點(diǎn)的時間段。晚餐時間則會部分提前17點(diǎn)的時間段進(jìn)行,需要提前做好食堂的準(zhǔn)備事項。
4 Web系統(tǒng)效果展示
以上是校園卡分析的部分過程,我們還可以做成web系統(tǒng)來展示。效果如下:
4.平常時間的早、中、晚餐的用餐時間集中在7點(diǎn)、11點(diǎn)、17-18點(diǎn)時間段。周末消費(fèi)的時間相對平緩,早餐的高峰時間會延后到8點(diǎn)時間段,且持續(xù)有人員消費(fèi),中餐的用餐時間也會有部分后延到12點(diǎn)的時間段。晚餐時間則會部分提前17點(diǎn)的時間段進(jìn)行,需要提前做好食堂的準(zhǔn)備事項。
Web系統(tǒng)效果展示
以上是校園卡分析的部分過程,我們還可以做成web系統(tǒng)來展示。效果如下:
5 最后
總結(jié)
以上是生活随笔為你收集整理的大数据毕设 - 校园卡数据分析与可视化(python 大数据)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: GNU的C++代码书写规范
- 下一篇: python多线程爬取海报图片