[PYTHON] Aggregieren Sie VIP-Werte von Smash Bra mit Pandas

Einführung

[Erstes Schaben] VIP von Smash Bra Ich habe versucht, einen Charakter zu erstellen, in dem man leicht leben kann [Schöne Suppe] [Datenanalyse]

Schaben

import re
import time

import requests
from bs4 import BeautifulSoup

headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko"
}

result = []

for i in range(1, 82):

    url = f"https://kumamate.net/data/?mode=rate&fighter={i}"

    r = requests.get(url, headers=headers)
    r.raise_for_status()

    soup = BeautifulSoup(r.content, "html.parser")

    for trs in soup.find_all("tr", class_=re.compile("RecentMatch[12]")):

        tds = trs.find_all("td")

        win, lose, _ = re.split("[Gewinnen oder verlieren]", tds[3].get_text(strip=True))

        data = [
            tds[0].img.get("alt"),
            tds[2].get_text(strip=True),
            int(win),
            int(lose),
            float(tds[4].get_text(strip=True).rstrip("%")),
        ]

        result.append(data)

    time.sleep(1)

result

Datenanalyse

import pandas as pd

df = pd.DataFrame(result, columns=["mich selber", "Gegner", "Sieg", "Niederlage", "Sieg率"])

#Berechnung der Anzahl der Verwendungen
df["Anzahl der Verwendungen"] = df["Sieg"] + df["Niederlage"]

#Gesamtzahl der Anwendungen durch Kämpfer
pv = df.pivot_table(values="Anzahl der Verwendungen", index="mich selber", aggfunc="sum").reset_index()

pv.rename(columns={"mich selber": "Gegner", "Anzahl der Verwendungen": "Registrationsnummer"}, inplace=True)

df1 = pd.merge(df, pv, on="Gegner")

#VIP-Berechnung
df1["VIP"] = df1["Registrationsnummer"] * df1["Gewinnrate"]

#Schließen Sie das gleiche Zeichen aus
df2 = df1[df1["mich selber"] != df1["Gegner"]].copy()

#VIP-Aggregation durch Kämpfer
pv1 = df2.pivot_table(values="VIP", index="mich selber", aggfunc="sum").sort_values(
    by="VIP", ascending=False
)

pv1["VIP"] = (pv1["VIP"] // 100000).astype(int)

print(pv1.to_markdown())

Gesamtzahl der Verwendungen

mich selber Anzahl der Verwendungen
1 Ganondorf 24004
2 Joker 19527
3 Bowser 19016
4 Mario 17186
5 Esel Kong 15838
6 Lucina 15771
7 Pudding 13148
8 Luca 12628
9 Wolke 12264
10 Roy 11374
11 Zelda 11125
12 Kapitän Falcon 11044
13 Baskenmütze / Beres 10269
14 Partena 10159
15 Mars 10126
16 Kirby 9388
17 Verknüpfung 9173
18 Gaogaen 8657
19 Falco 8223
20 Ness 8061
21 Roboter 8032
22 Incling 7986
23 Terry 7955
24 Wolf 7867
25 Pikachu 7739
26 Schlange 7330
27 Yoshi 7275
28 Geckouga 6898
29 Ike 6333
30 Mr.Spiel&Uhr 6333
31 Meen Meen 6290
32 Beyonetta 6286
33 Dedede 6201
34 Fuchs 6198
35 Ken 6088
36 Mutig 6077
37 Miu Zwei 6037
38 Rufure 5917
39 König Kruul 5893
40 Zero Suit Sams 5454
41 Kamui 5453
42 Ridley 5446
43 Pac-Man 5262
44 Pokemon Trainer 5093
45 Pakkun Blume 5019
46 Sams 4854
47 Schwarze Grube 4733
48 Dark Sams 4716
49 Wii Fit Trainer 4693
50 Chrom 4630
51 Doktor Mario 4405
52 Murabito 4261
53 Schulk 4201
54 Metanit 4173
55 suchen 4127
56 Luigi 4103
57 Bowser.Jr 3974
58 Pichu 3886
59 Banjo&Kazui 3867
60 Kleiner Mac 3818
61 Kinder Link 3653
62 Entenjagd 3282
63 Shizue 3208
64 Lucario 3167
65 Rockman 3073
66 Toon Link 2954
67 Schall 2848
68 Wario 2506
69 Picmin&Olimer 2340
70 Eiskletterer 2324
71 Grube 2265
72 Kampf gegen Mii 2262
73 Pfirsich 2251
74 Rosetta&Chico 2192
75 Mii schießen 2169
76 Ryu 2151
77 Gänseblümchen 1880
78 Diddy Kong 1829
79 Simon 1554
80 Richter 1515
81 Schwertkunst Mii 1383

VIP-Tabellierung

mich selber VIP
Bowser.Jr 303
Banjo&Kazui 300
Richter 299
Meen Meen 296
Mii schießen 295
Entenjagd 291
Fuchs 287
Rufure 285
Kampf gegen Mii 284
Rockman 284
Gaogaen 283
Mr.Spiel&Uhr 282
Ken 281
Dedede 278
Schwertkunst Mii 277
Geckouga 276
Dark Sams 276
Beyonetta 275
Schlange 274
Toon Link 274
Schwarze Grube 274
Simon 273
Falco 273
Pakkun Blume 273
Diddy Kong 273
Wii Fit Trainer 272
Metanit 272
Pfirsich 272
Sams 268
Zelda 268
Ike 268
Picmin&Olimer 267
Grube 267
Roboter 266
Ryu 266
Pac-Man 266
Eiskletterer 266
Rosetta&Chico 265
Partena 265
Murabito 265
Mutig 264
Doktor Mario 264
Pokemon Trainer 264
Gänseblümchen 262
Verknüpfung 261
Pichu 260
Mario 260
Chrom 260
Kamui 259
Yoshi 259
König Kruul 258
Wolf 258
Kleiner Mac 258
Lucario 258
Wario 257
Schulk 257
Incling 257
Wolke 257
Roy 256
Kinder Link 256
Pikachu 256
Bowser 256
Miu Zwei 256
Luigi 255
Terry 255
Schall 255
Ness 254
suchen 254
Shizue 253
Luca 252
Kapitän Falcon 250
Pudding 250
Esel Kong 249
Mars 249
Lucina 248
Zero Suit Sams 246
Ridley 245
Joker 244
Kirby 244
Baskenmütze / Beres 241
Ganondorf 240

Referenz

[[Erstes Scraping] Ich habe versucht, einen VIP-Charakter für Smash Bra [Beautiful Soup] [Datenanalyse]] zu erstellen (https://qiita.com/daikiclimate/items/31f613da3600157cbecb)

Recommended Posts

Aggregieren Sie VIP-Werte von Smash Bra mit Pandas
Berechnen Sie die Summe der eindeutigen Werte durch Pandas-Kreuztabellen
Ersetzen Sie Spaltennamen / -werte durch Pandas-Datenrahmen
Echtzeitberechnung des Durchschnittswertes mit Corroutine
Beispiel für eine effiziente Datenverarbeitung mit PANDAS
Versuchen Sie, Doujin-Musikdaten mit Pandas zu aggregieren
Automatischer Betrieb von Chrome mit Python + Selen + Pandas
Löschen Sie Zeilen mit beliebigen Werten in pandas DataFrame
Behandeln Sie Ganzzahltypen mit fehlenden Werten in Pandas
So extrahieren Sie Nullwerte und Nicht-Nullwerte mit Pandas
So geben Sie die CSV eines mehrzeiligen Headers mit Pandas aus
[Memo] Lade csv von s3 mit boto3 in Pandas
Animieren Sie die Alpha- und Beta-Werte der weltweit besten Marktwertaktien mit Pandas + Matplotlib