【毕业设计】大数据 - 网络游戏数据分析可视化
文章目錄
- 1. 數據集說明
- 2. 數據處理
- 3. 數據分析可視化
- 3.1 新增用戶
- 3.2 用戶活躍度
- 3.3 用戶消費情況
- 3.4 用戶游戲情況
- 4 最后
🧿 選題指導, 項目分享:
https://gitee.com/dancheng-senior/project-sharing-1/blob/master/%E6%AF%95%E8%AE%BE%E6%8C%87%E5%AF%BC/README.md
1. 數據集說明
這是一份手游《野蠻時代》的用戶數據,共有訓練集和測試集兩個數據文件。二者之間數據無交集,合計大小 861 M,總記錄數 3,116,941,包含字段 109 個。
2. 數據處理
數據處理:將兩個數據文件合并,只取分析要用的字段。然后把數據寫到 mysql。
只取用于分析的字段,因為字段數太多,去掉沒用的字段可以極大的節省內存和提高效率
## 合并數據文件 dir = r"C:\Users\Administrator\Desktop\AgeOfBarbarians" data_list = [] for path in os.listdir(dir):path = os.path.join(dir, path)data = pd.read_csv(path)data = data[['user_id', 'register_time', 'pvp_battle_count', 'pvp_lanch_count', 'pvp_win_count', 'pve_battle_count','pve_lanch_count', 'pve_win_count', 'avg_online_minutes', 'pay_price', 'pay_count']]data_list.append(data) data = pd.concat(data_list)## 輸出處理 # 沒有重復值 # print(data[data.duplicated()])# 沒有缺失值 # print(data.isnull().sum())## 數據保存 # 保存清洗后的數據 mysql engine = create_engine('mysql://root:root@172.16.122.25:3306/test?charset=utf8') data.to_sql('age_of_barbarians', con=engine, index=False, if_exists='append')導進數據庫后,在修改下字段類型以解決精度問題。
alter table age_of_barbarians modify register_time timestamp(0); alter table age_of_barbarians modify avg_online_minutes float(10, 2); alter table age_of_barbarians modify pay_price float(10, 2);3. 數據分析可視化
3.1 新增用戶
總的用戶數為 3,116,941。
總的記錄數與用戶數據一致,說明 use_id 可以作為唯一 ID。所以后續對用戶的統計,可以不用加 distinct
其中 PU 為 60,988 人, 占比 1.96 %
PU ( Paying Users):付費用戶總量
DNU 的情況如下圖,可以看到有兩個注冊高峰,應該是這款游戲做了什么活動引流產生。
DNU(Daily New Users): 每日游戲中的新登入用戶數量,即每日新用戶數。
每小時注冊的用戶情況如下,可以看到新用戶的注冊高峰是在晚間的 21 點。
3.2 用戶活躍度
從平均在線時間來看,付費用戶的平均在線時間高達 2 個小時,遠大于整體的平均在線時間。
3.3 用戶消費情況
APA(Active Payment Account):活躍付費用戶數。
ARPU(Average Revenue Per User) :平均每用戶收入。
ARPPU (Average Revenue Per Paying User): 平均每付費用戶收入。
PUR(Pay User Rate):付費比率,可通過 APA/AU 計算得出。
-- APA(Active Payment Account):活躍付費用戶數。 select count(1) as APA from age_of_barbarians where pay_price > 0 and avg_online_minutes > 0; -- 60987-- ARPU(Average Revenue Per User) :平均每用戶收入。 select sum(pay_price)/sum(case when avg_online_minutes > 0 then 1 else 0 end) from age_of_barbarians; -- 0.582407-- ARPPU (Average Revenue Per Paying User): 平均每付費用戶收入。 select sum(pay_price)/sum(case when avg_online_minutes > 0 and pay_price > 0 then 1 else 0 end) from age_of_barbarians; -- 29.190265-- PUR(Pay User Rate):付費比率,可通過 APA/AU 計算得出。 select sum(case when avg_online_minutes > 0 and pay_price > 0 then 1 else 0 end) / sum(case when avg_online_minutes > 0 then 1 else 0 end) from age_of_barbarians; -- 0.02-- 付費用戶人數,付費總額,付費總次數,平均每人付費,平均每人付費次數,平均每次付費 select count(1) as pu, -- 60988sum(pay_price) as sum_pay_price, -- 1780226.7avg(pay_price) as avg_pay_price, -- 29.189786sum(pay_count) as sum_pay_count, -- 193030avg(pay_count) as avg_pay_count, -- 3.165sum(pay_price) / sum(pay_count) as each_pay_price -- 9.222539 from age_of_barbarians where pay_price > 0;從上方的統計結果可以知道,這 6 萬多的付費用戶,一共消費了 178 萬元,平均每人消費 29 元。
平均每用戶收入 0.58 元,平均每付費用戶收入 29.19 元,付費比率為 2% 。
這個付費比率應該是比較低的,可以通過一些首沖活動來提高新用戶的付費意愿。
3.4 用戶游戲情況
從勝率和場次來看,氪金確實可以讓你變強,付費用戶的平均勝率為 71.13 %,遠大于非付費用戶的 38.03 %,當然也是因為付費用戶的平均游戲場次要遠大于一般用戶,畢竟越肝越強。
從游戲類型來看,PVE 的平均勝率達到 90.1 %,說明難度還是比較低的,游戲體驗還是很好的,適合符合入門級難度設定。
🧿 選題指導, 項目分享:
https://gitee.com/dancheng-senior/project-sharing-1/blob/master/%E6%AF%95%E8%AE%BE%E6%8C%87%E5%AF%BC/README.md
4 最后
總結
以上是生活随笔為你收集整理的【毕业设计】大数据 - 网络游戏数据分析可视化的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: pyhton-miniblink
- 下一篇: 计算矩阵的任意次方