利用python進(jìn)行《野蠻時代》游戲數(shù)據(jù)分析

數(shù)據(jù)來源:游戲玩家付費金額預(yù)測大賽

數(shù)據(jù)包含近229萬條記錄察净,109個字段掠手,以下取較重要的字段進(jìn)行說明抒巢。

字段說明:user_id:用戶編碼胎撇,用戶唯一標(biāo)識

? ? ? ? ? ? ? ? ? ?bd_stronghold_level:要塞等級介粘,相當(dāng)于游戲賬號等級

? ? ? ? ? ? ? ? ? ?wood_reduce_value:木頭消耗數(shù)量

? ? ? ? ? ? ? ? ? ? stone_reduce_value:石頭消耗數(shù)量

? ? ? ? ? ? ? ? ? ? ivory_reduce_value:象牙消耗數(shù)量

? ? ? ? ? ? ? ? ? ? meat_reduce_value:肉消耗數(shù)量

? ? ? ? ? ? ? ? ? ? magic_reduce_value:魔法消耗數(shù)量

? ? ? ? ? ? ? ? ? ? general_acceleration_reduce_value:通用加速消耗數(shù)量

? ? ? ? ? ? ? ? ? ? building_acceleration_reduce_value:建筑加速消耗數(shù)量

? ? ? ? ? ? ? ? ? ? reaserch_acceleration_reduce_value:科研加速消耗數(shù)量

? ? ? ? ? ? ? ? ? ? training_acceleration_reduce_value:訓(xùn)練加速消耗數(shù)量

? ? ? ? ? ? ? ? ? ? treatment_acceleration_reduce_value:治療加速消耗數(shù)量

? ? ? ? ? ? ? ? ? ? pvp_battle_count:玩家對玩家次數(shù)

? ? ? ? ? ? ? ? ? ? pve_battle_count:玩家對機器次數(shù)

? ? ? ? ? ? ? ? ? ? avg_online_minutes:日均在線時間

? ? ? ? ? ? ? ? ? ? pay_price: 消費金額

? ? ? ? ? ? ? ? ? ? pay_count:消費次數(shù)

分析思路:用戶注冊時間分布情況?

? ? ? ? ? ? ? ? ? ? 用戶的付費情況(付費率晚树,ARPU姻采,ARPPU)?

? ? ? ? ? ? ? ? ? ? 各等級用戶的付費情況爵憎?

? ? ? ? ? ? ? ? ? ? 用戶的消費習(xí)慣慨亲?

? ? ? ? ? ? ? ? ? ? 可視化數(shù)據(jù)

分析過程:

①導(dǎo)入數(shù)據(jù)

import numpy as np

import pandas as pd

from pandas import read_csv

from sklearn.cluster import KMeans

import matplotlib.pyplotas plt

import pylab as pl

from matplotlib.font_managerimport FontManager, FontProperties

pd.set_option('display.max_columns',None)

#為了數(shù)據(jù)安全,copy一份數(shù)據(jù)

df=df0

#檢查是否有空值

print(df.isnull().any().any())

#觀察數(shù)據(jù)構(gòu)成

print(df.head())


②清洗數(shù)據(jù)

#以user_id為維度宝鼓,刪除重復(fù)數(shù)據(jù)巡雨,并查看用戶總數(shù)

df=df.drop_duplicates(subset='user_id')

print('用戶總數(shù):',len(df['user_id']))

→用戶總數(shù):2288007


③計算用戶注冊時間分布

#首先將注冊時間精確到天

register_date=[]

for i in df['register_time']:

????date=i[5:10]

????register_date.append(date)

df['register_time']=register_date

#計算每天的注冊人數(shù)

df_register=df.groupby('register_time').size()

df_register.columns=['日期','注冊人數(shù)']

print(df_register)

(可視化)

plt.plot(df_register)

plt.grid(True)

pl.xticks(rotation=90)

font=FontProperties(fname='/System/Library/Fonts/PingFang.ttc')

plt.title('用戶注冊分布圖',fontproperties=font)

plt.show()

△可以看出,用戶注冊數(shù)在2月19日有一次的大的高峰席函,其他時間也分別有幾次小高峰,且高峰的持續(xù)時間很短冈涧,可以推測是因為游戲推出一些獎勵活動或公司對游戲的推廣取得了效果進(jìn)而使注冊用戶激增茂附。


④用戶的付費情況(付費率,ARPU督弓,ARPPU)

#付費率(付費人數(shù)/活躍人數(shù))

df_pay_user=df[(df['pay_price']>0)]

pay_rate=df_pay_user['user_id'].count()/df_active_user['user_id'].count()

print('付費率:%.2f'%(pay_rate))

#ARPU(總付費金額/活躍人數(shù))

arpu=df_pay_user['pay_price'].sum()/df_active_user['user_id'].count()

print('ARPU:%.2f'%(arpu))

#ARPPU(總付費金額/付費人數(shù))

arppu=df_pay_user['pay_price'].sum()/df_pay_user['user_id'].count()

print('ARPPU:%.2f'%(arppu))

△目前盈利較好的手游的ARPU超過5元营曼,一般手游在3~5元之間,盈利較差的低于3元愚隧,該游戲的ARPU為8.55元蒂阱,說明盈利水平較高。


⑤不同等級用戶的付費情況

df_user=df[['user_id','bd_stronghold_level','pay_price','pay_count']]

df_table=pd.pivot_table(df_user,index=['bd_stronghold_level'],

values=['user_id','pay_price','pay_count'],

aggfunc={'user_id':'count','pay_price':'sum','pay_count':'sum'})

df_stronghold_pay=pd.DataFrame(df_table.to_records())

#各等級付費人數(shù)

df_stronghold_pay['pay_num']=df_user[(df_user['pay_price']>0)].groupby('bd_stronghold_level').user_id.count()

#各等級付費轉(zhuǎn)化率

df_stronghold_pay['pay_rate']=df_stronghold_pay['pay_num']/df_stronghold_pay['user_id']

#各等級平均付費金額

df_stronghold_pay['avg_pay_price']=df_stronghold_pay['pay_price']/df_stronghold_pay['user_id']

#各等級平均付費次數(shù)

df_stronghold_pay['avg_pay_count']=df_stronghold_pay['pay_count']/df_stronghold_pay['user_id']

#重命名列名

df_stronghold_pay.columns=['要塞等級','總付費次數(shù)','總付費金額','總?cè)藬?shù)',

'付費人數(shù)','付費轉(zhuǎn)化率','人均付費金額','人均付費次數(shù)']

df_stronghold_pay=df_stronghold_pay[['要塞等級','總?cè)藬?shù)','付費人數(shù)','付費轉(zhuǎn)化率',

'總付費金額','人均付費金額','總付費次數(shù)','人均付費次數(shù)']]

df_stronghold_pay=df_stronghold_pay.round(2)

print(df_stronghold_pay)

(可視化)

#要塞等級—付費轉(zhuǎn)化率

x=df_stronghold_pay['要塞等級']

y=df_stronghold_pay['付費轉(zhuǎn)化率']

plt.xticks(x,range(0,len(x),1))

plt.plot(x,y)

plt.grid(True)

plt.title('不同等級用戶付費轉(zhuǎn)化率',fontproperties=font)

plt.show()

#要塞等級-人均付費金額

x=df_stronghold_pay['要塞等級']

y=df_stronghold_pay['人均付費金額']

plt.xticks(x,range(0,len(x),1))

plt.plot(x,y)

plt.grid(True)

plt.title('不同等級用戶人均付費jine',fontproperties=font)

plt.show()

x=df_stronghold_pay['要塞等級']

y=df_stronghold_pay['人均付費金額']

plt.xticks(x,range(0,len(x),1))

plt.plot(x,y)

plt.grid(True)

plt.title('不同等級用戶人均付費jine',fontproperties=font)

plt.show()

#要塞等級-人均付費次數(shù)

x=df_stronghold_pay['要塞等級']

y=df_stronghold_pay['人均付費次數(shù)']

plt.xticks(x,range(0,len(x),1))

plt.plot(x,y)

plt.grid(True)

plt.title('不同等級用戶人均付費次數(shù)',fontproperties=font)

plt.show()

△用戶等級到達(dá)10級時狂塘,付費率接近60%录煤,等級到達(dá)13級時,付費率接近100%荞胡,且人均付費金額和次數(shù)兩項指標(biāo)也在用戶達(dá)到10級后增長迅速妈踊,因此可以認(rèn)定10級以上用戶為游戲的核心用戶。

△但是觀察用戶等級分布泪漂,發(fā)現(xiàn)絕大部分用戶還是處在10級以下的水平廊营,因此如何使用戶達(dá)到10級是游戲運營接下來需要考慮的事歪泳。


⑥不同玩家的消費習(xí)慣

該游戲充值主要可以獲得道具類(木頭、石頭露筒、象牙呐伞、肉、魔法)和加速券類(通用慎式、建筑伶氢、科研、訓(xùn)練瞬捕、醫(yī)療)鞍历。根據(jù)用戶的充值金額大小,分別分析兩類消費品的消耗情況肪虎。

#將等級>=10級的玩家劃分為:消費>=500為高消費玩家劣砍,<500為普通玩家

df_eli_user=df[(df['pay_price']>=500)&(df['bd_stronghold_level']>=10)]

df_nor_user=df[(df['pay_price']<500)&(df['bd_stronghold_level']>10)]

#不同玩家的道具消耗情況

wood_avg=[df_eli_user['wood_reduce_value'].mean(),df_nor_user['wood_reduce_value'].mean()]

stone_avg=[df_eli_user['stone_reduce_value'].mean(),df_nor_user['stone_reduce_value'].mean()]

ivory_avg=[df_eli_user['ivory_reduce_value'].mean(),df_nor_user['ivory_reduce_value'].mean()]

meat_avg=[df_eli_user['meat_reduce_value'].mean(),df_nor_user['meat_reduce_value'].mean()]

magic_avg=[df_eli_user['magic_reduce_value'].mean(),df_nor_user['magic_reduce_value'].mean()]

props_data={'high_value_player':[wood_avg[0],stone_avg[0],ivory_avg[0],meat_avg[0],magic_avg[0]],

? ? ? ? ? ????????????? 'normal_player':[wood_avg[1],stone_avg[1],ivory_avg[1],meat_avg[1],magic_avg[1]]}

df_props=pd.DataFrame(props_data,index=['wood','stone','ivory','meat','magic'])

df_props=df_props.round(2)

print(df_props)

#可視化

ax=df_props.plot(kind='bar',title='Props Reduce',

? ? ? ? ? ? ? ? grid=True,legend=True)

plt.show()

△普通玩家和高消費玩家對木頭、石頭扇救、肉的消耗都較大刑枝,魔法的消耗都較小,而在象牙的消耗上迅腔,高消費玩家和普通玩家的消耗差距較大装畅。

#不同玩家的加速券消耗情況

general_avg=[df_eli_user['general_acceleration_reduce_value'].mean(),

? ? ? ? ? ? df_nor_user['general_acceleration_reduce_value'].mean()]

building_avg=[df_eli_user['building_acceleration_reduce_value'].mean(),

? ? ? ? ? ? ? df_nor_user['building_acceleration_reduce_value'].mean()]

research_avg=[df_eli_user['reaserch_acceleration_reduce_value'].mean(),

? ? ? ? ? ? ? df_nor_user['reaserch_acceleration_reduce_value'].mean()]

training_avg=[df_eli_user['training_acceleration_reduce_value'].mean(),

? ? ? ? ? ? ? df_nor_user['training_acceleration_reduce_value'].mean()]

treatment_avg=[df_eli_user['treatment_acceleration_reduce_value'].mean(),

? ? ? ? ? ? ? df_nor_user['treatment_acceleration_reduce_value'].mean()]

acceleration_data={'high_value_player':[general_avg[0],building_avg[0],research_avg[0],

? ? ? ? ? ? ? ? ? ? ? ? ? training_avg[0],treatment_avg[0]],

? ? ? ? ? ? ? ? ? 'normal_player':[general_avg[1],building_avg[1],research_avg[1],

? ? ? ? ? ? ? ? ? ? ? ? ? training_avg[1],treatment_avg[1]]}

df_acceleration=pd.DataFrame(acceleration_data,index=['general','building','researching','training','treatment'])

print(df_acceleration.round(2))

#可視化

ax=df_acceleration.plot(kind='bar',title='Acceleration Reduce',

? ? ? ? ? ? ? ? grid=True,legend=True)

plt.show()

△兩類玩家對對治療加速券消耗都很小,對通用加速券的消耗差異較大沧烈,其他三種加速券消耗差別不大掠兄。

結(jié)論:1.該游戲具有較大的用戶基數(shù),且新用戶注冊受游戲活動锌雀、新版本等因素影響較大蚂夕。

? ? ? ? ? ? ?2.該游戲的ARPU為8.55,說明該游戲的盈利能力較高腋逆。

? ? ? ? ? ? ?3.用戶等級達(dá)到10級后婿牍,付費意愿明顯上升,且達(dá)到13級時付費率將近100%惩歉。但是絕大多數(shù)用戶仍然停留在10級以下等脂,如何使用戶平滑升至10級尤為重要。

? ? ? ? ? ? ?4.消費習(xí)慣上撑蚌,高消費玩家對象牙和通用加速券的需求遠(yuǎn)多于一般玩家上遥。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市争涌,隨后出現(xiàn)的幾起案子露该,更是在濱河造成了極大的恐慌,老刑警劉巖第煮,帶你破解...
    沈念sama閱讀 218,858評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件解幼,死亡現(xiàn)場離奇詭異抑党,居然都是意外死亡,警方通過查閱死者的電腦和手機撵摆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評論 3 395
  • 文/潘曉璐 我一進(jìn)店門底靠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人特铝,你說我怎么就攤上這事暑中。” “怎么了鲫剿?”我有些...
    開封第一講書人閱讀 165,282評論 0 356
  • 文/不壞的土叔 我叫張陵鳄逾,是天一觀的道長。 經(jīng)常有香客問我灵莲,道長雕凹,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,842評論 1 295
  • 正文 為了忘掉前任政冻,我火速辦了婚禮枚抵,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘明场。我一直安慰自己汽摹,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,857評論 6 392
  • 文/花漫 我一把揭開白布苦锨。 她就那樣靜靜地躺著逼泣,像睡著了一般。 火紅的嫁衣襯著肌膚如雪舟舒。 梳的紋絲不亂的頭發(fā)上拉庶,一...
    開封第一講書人閱讀 51,679評論 1 305
  • 那天,我揣著相機與錄音魏蔗,去河邊找鬼。 笑死痹筛,一個胖子當(dāng)著我的面吹牛莺治,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播帚稠,決...
    沈念sama閱讀 40,406評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼谣旁,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了滋早?” 一聲冷哼從身側(cè)響起榄审,我...
    開封第一講書人閱讀 39,311評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎杆麸,沒想到半個月后搁进,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體浪感,經(jīng)...
    沈念sama閱讀 45,767評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年饼问,在試婚紗的時候發(fā)現(xiàn)自己被綠了影兽。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,090評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡莱革,死狀恐怖峻堰,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情盅视,我是刑警寧澤捐名,帶...
    沈念sama閱讀 35,785評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站闹击,受9級特大地震影響镶蹋,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜拇砰,卻給世界環(huán)境...
    茶點故事閱讀 41,420評論 3 331
  • 文/蒙蒙 一梅忌、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧除破,春花似錦牧氮、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至光坝,卻和暖如春尸诽,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背盯另。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評論 1 271
  • 我被黑心中介騙來泰國打工性含, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人鸳惯。 一個月前我還...
    沈念sama閱讀 48,298評論 3 372
  • 正文 我出身青樓商蕴,卻偏偏與公主長得像,于是被迫代替她去往敵國和親芝发。 傳聞我的和親對象是個殘疾皇子绪商,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,033評論 2 355

推薦閱讀更多精彩內(nèi)容

  • pyspark.sql模塊 模塊上下文 Spark SQL和DataFrames的重要類: pyspark.sql...
    mpro閱讀 9,456評論 0 13
  • **2014真題Directions:Read the following text. Choose the be...
    又是夜半驚坐起閱讀 9,509評論 0 23
  • 實話生活 體悟人生 木風(fēng)恒:怎么 那顆螺釘擰不出來了啊 兄弟:吃力啊 不好弄 太短了 又怕不小心給弄壞了 到時更難...
    木風(fēng)恒閱讀 186評論 0 1
  • 你遠(yuǎn)走高飛格郁, 飛不過我的思戀, 我恨我癡心。 你恨心轉(zhuǎn)身例书, 轉(zhuǎn)不出我的情深锣尉, 我恨我癡心。 我愛的雾叭, 一直是你悟耘, ...
    筋工元素閱讀 424評論 3 2
  • 走進(jìn)軍旅(散文詩) 是你走的時候了。帶著小村的光榮與驕傲织狐,帶著十八歲軍人的將軍夢暂幼,你走了。沿著哥哥當(dāng)年的應(yīng)...
    天然水閱讀 194評論 0 4