Big Data Bishe teilt Big Data – Analyse und Visualisierung von Online-Spieldaten

1. Beschreibung des Datensatzes

Dies sind Benutzerdaten des Handyspiels „Barbarian Age“. Es gibt zwei Datendateien: Trainingssatz und Testsatz. Es gibt keine Überschneidung der Daten zwischen den beiden, die Gesamtgröße beträgt 861 M, die Gesamtzahl der Datensätze beträgt 3.116.941 und es enthält 109 Felder.

2. Datenverarbeitung

Datenverarbeitung: Führen Sie die beiden Datendateien zusammen und übernehmen Sie nur die für die Analyse verwendeten Felder. Dann schreiben Sie die Daten nach MySQL.

Es werden nur die für die Analyse verwendeten Felder verwendet. Da zu viele Felder vorhanden sind, kann das Entfernen nutzloser Felder erheblich Speicherplatz sparen und die Effizienz verbessern.

## 合并数据文件 
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:[email protected]:3306/test?charset=utf8')
data.to_sql('age_of_barbarians', con=engine, index=False, if_exists='append')

Bild-20201230152058798

Ändern Sie nach dem Importieren der Datenbank den Feldtyp, um das Genauigkeitsproblem zu lösen.

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);

Bild-20201230153430246

3. Visualisierung der Datenanalyse

3.1 Neue Benutzer hinzufügen

Die Gesamtzahl der Benutzer beträgt 3.116.941.

Die Gesamtzahl der Datensätze stimmt mit den Benutzerdaten überein, was darauf hinweist, dass use_id als eindeutige ID verwendet werden kann. Daher ist es nicht erforderlich, für nachfolgende Benutzerstatistiken eindeutige Angaben hinzuzufügen.

Bild-20201230154232372

Unter ihnen sind 60.988 Menschen PU, was 1,96 % ausmacht

PU (Paying Users): Gesamtzahl der zahlenden Benutzer

Bild-20201230162906441

Die Situation von DNU stellt sich wie folgt dar. Sie können sehen, dass es zwei Registrierungsspitzen gibt, die durch die Aktivitäten dieses Spiels verursacht werden sollten, um Verkehr anzulocken.

DNU (Daily New Users): Die Anzahl der täglich neu angemeldeten Benutzer im Spiel, also die Anzahl der täglich neuen Benutzer.

Bild-20201230170002894

Die Anzahl der registrierten Benutzer pro Stunde stellt sich wie folgt dar. Es ist ersichtlich, dass der Höhepunkt der Neuregistrierungen um 21:00 Uhr abends liegt.

Bild-20201230170339951

3.2 Benutzeraktivität

Gemessen an der durchschnittlichen Online-Zeit beträgt die durchschnittliche Online-Zeit zahlender Benutzer bis zu 2 Stunden, was viel länger ist als die durchschnittliche Online-Zeit insgesamt.

Bild-20201230172026634

3.3 Nutzerverbrauchssituation

APA (Active Payment Account): Anzahl der aktiven zahlenden Benutzer.

ARPU (Average Revenue Per User): durchschnittlicher Umsatz pro Benutzer.

ARPPU (Average Revenue Per Paying User): Durchschnittlicher Umsatz pro zahlendem Benutzer.

PUR (Pay User Rate): Zahlungsverhältnis, das über APA/AU berechnet werden kann.

-- 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,  -- 60988
        sum(pay_price) as sum_pay_price,  -- 1780226.7
        avg(pay_price) as avg_pay_price,  -- 29.189786
        sum(pay_count) as sum_pay_count,  -- 193030
        avg(pay_count) as avg_pay_count,  -- 3.165
        sum(pay_price) / sum(pay_count) as each_pay_price -- 9.222539
from age_of_barbarians
where pay_price > 0;

Aus den obigen statistischen Ergebnissen können wir erkennen, dass diese mehr als 60.000 zahlenden Nutzer insgesamt 1,78 Millionen Yuan ausgegeben haben, bei einem durchschnittlichen Verbrauch von 29 Yuan pro Person.

Der durchschnittliche Umsatz pro Benutzer beträgt 0,58 Yuan, der durchschnittliche Umsatz pro zahlendem Benutzer beträgt 29,19 Yuan und die Zahlungsquote beträgt 2 %.

Diese Zahlungsquote sollte relativ niedrig sein und die Zahlungsbereitschaft neuer Benutzer kann durch einige Erstladeaktivitäten erhöht werden.

Bild-20201230174654309

3.4 Spielsituation des Benutzers

Was die Gewinnquote und die Anzahl der Spiele angeht, kann Krypton Gold Sie tatsächlich stärker machen. Die durchschnittliche Gewinnquote zahlender Benutzer liegt bei 71,13 %, was viel höher ist als die 38,03 % nicht zahlender Benutzer. Das ist natürlich auch der Fall denn der durchschnittliche Spielanteil zahlender Nutzer ist viel größer als der normaler Nutzer. Denn je mehr Leber, desto stärker.

Aus Sicht des Spieltyps erreicht die durchschnittliche Gewinnquote von PVE 90,1 %, was darauf hindeutet, dass der Schwierigkeitsgrad immer noch relativ niedrig ist, das Spielerlebnis immer noch sehr gut ist und es für Schwierigkeitsstufen im Einstiegsniveau geeignet ist.

Bild-20201231100513252

Bild-20201231103330520

4 endlich

Acho que você gosta

Origin blog.csdn.net/caxiou/article/details/135059944
Recomendado
Clasificación