[PYTHON] Regroupez les valeurs VIP de Smash Bra avec les pandas
introduction
[Premier grattage] VIP de Smash Bra J'ai essayé de créer un personnage facile à vivre dans [Beautiful Soup] [Analyse de données]
Grattage
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("[Gagner ou perdre]", 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
L'analyse des données
import pandas as pd
df = pd.DataFrame(result, columns=["moi même", "Adversaire", "Gagner", "Défaite", "Gagner率"])
#Calcul du nombre d'utilisations
df["Nombre d'utilisations"] = df["Gagner"] + df["Défaite"]
#Nombre total d'utilisations par combattant
pv = df.pivot_table(values="Nombre d'utilisations", index="moi même", aggfunc="sum").reset_index()
pv.rename(columns={"moi même": "Adversaire", "Nombre d'utilisations": "Numéro d'enregistrement"}, inplace=True)
df1 = pd.merge(df, pv, on="Adversaire")
#Calcul VIP
df1["VIP"] = df1["Numéro d'enregistrement"] * df1["Taux de réussite"]
#Exclure le même caractère
df2 = df1[df1["moi même"] != df1["Adversaire"]].copy()
#Agrégation VIP par combattant
pv1 = df2.pivot_table(values="VIP", index="moi même", aggfunc="sum").sort_values(
by="VIP", ascending=False
)
pv1["VIP"] = (pv1["VIP"] // 100000).astype(int)
print(pv1.to_markdown())
Nombre total d'utilisations
|
moi même |
Nombre d'utilisations |
1 |
Ganondorf |
24004 |
2 |
Joker |
19527 |
3 |
Bowser |
19016 |
4 |
Mario |
17186 |
5 |
Donkey Kong |
15838 |
6 |
Lucina |
15771 |
7 |
Pudding |
13148 |
8 |
Luca |
12628 |
9 |
Nuage |
12264 |
10 |
Roy |
11374 |
11 |
Zelda |
11125 |
12 |
Capitaine Falcon |
11044 |
13 |
Béret / Beres |
10269 |
14 |
Partena |
10159 |
15 |
Mars |
10126 |
16 |
Kirby |
9388 |
17 |
Lien |
9173 |
18 |
Gaogaen |
8657 |
19 |
Falco |
8223 |
20 |
Ness |
8061 |
21 |
robot |
8032 |
22 |
Incluant |
7986 |
23 |
Terry |
7955 |
24 |
Loup |
7867 |
25 |
Pikachu |
7739 |
26 |
serpent |
7330 |
27 |
Yoshi |
7275 |
28 |
Geckouga |
6898 |
29 |
Ike |
6333 |
30 |
Mr.Jeu®arder |
6333 |
31 |
Meen Meen |
6290 |
32 |
Beyonetta |
6286 |
33 |
Dedede |
6201 |
34 |
Renard |
6198 |
35 |
Ken |
6088 |
36 |
Courageux |
6077 |
37 |
Miu deux |
6037 |
38 |
Rufure |
5917 |
39 |
Roi Kruul |
5893 |
40 |
Zéro Suit Sams |
5454 |
41 |
Kamui |
5453 |
42 |
Ridley |
5446 |
43 |
Pac-Man |
5262 |
44 |
Entraîneur de Pokémon |
5093 |
45 |
Fleur de Pakkun |
5019 |
46 |
Sams |
4854 |
47 |
Fosse noire |
4733 |
48 |
Sams sombres |
4716 |
49 |
Entraîneur Wii Fit |
4693 |
50 |
chrome |
4630 |
51 |
Docteur Mario |
4405 |
52 |
Murabito |
4261 |
53 |
Schulk |
4201 |
54 |
Métanite |
4173 |
55 |
chercher |
4127 |
56 |
Luigi |
4103 |
57 |
Bowser.Jr |
3974 |
58 |
Pichu |
3886 |
59 |
banjo&Kazui |
3867 |
60 |
Petit Mac |
3818 |
61 |
Lien enfants |
3653 |
62 |
Chasse au canard |
3282 |
63 |
Shizue |
3208 |
64 |
Lucario |
3167 |
65 |
Rockman |
3073 |
66 |
Lien Toon |
2954 |
67 |
Sonique |
2848 |
68 |
Wario |
2506 |
69 |
Picmin&Olimer |
2340 |
70 |
Grimpeur sur glace |
2324 |
71 |
fosse |
2265 |
72 |
Combattre Mii |
2262 |
73 |
Pêche |
2251 |
74 |
Rosetta&Chico |
2192 |
75 |
Tir Mii |
2169 |
76 |
Ryu |
2151 |
77 |
Marguerite |
1880 |
78 |
Diddy Kong |
1829 |
79 |
Simon |
1554 |
80 |
Richter |
1515 |
81 |
Épée Mii |
1383 |
Tabulation VIP
moi même |
VIP |
Bowser.Jr |
303 |
banjo&Kazui |
300 |
Richter |
299 |
Meen Meen |
296 |
Tir Mii |
295 |
Chasse au canard |
291 |
Renard |
287 |
Rufure |
285 |
Combattre Mii |
284 |
Rockman |
284 |
Gaogaen |
283 |
Mr.Jeu®arder |
282 |
Ken |
281 |
Dedede |
278 |
Épée Mii |
277 |
Geckouga |
276 |
Sams sombres |
276 |
Beyonetta |
275 |
serpent |
274 |
Lien Toon |
274 |
Fosse noire |
274 |
Simon |
273 |
Falco |
273 |
Fleur de Pakkun |
273 |
Diddy Kong |
273 |
Entraîneur Wii Fit |
272 |
Métanite |
272 |
Pêche |
272 |
Sams |
268 |
Zelda |
268 |
Ike |
268 |
Picmin&Olimer |
267 |
fosse |
267 |
robot |
266 |
Ryu |
266 |
Pac-Man |
266 |
Grimpeur sur glace |
266 |
Rosetta&Chico |
265 |
Partena |
265 |
Murabito |
265 |
Courageux |
264 |
Docteur Mario |
264 |
Entraîneur de Pokémon |
264 |
Marguerite |
262 |
Lien |
261 |
Pichu |
260 |
Mario |
260 |
chrome |
260 |
Kamui |
259 |
Yoshi |
259 |
Roi Kruul |
258 |
Loup |
258 |
Petit Mac |
258 |
Lucario |
258 |
Wario |
257 |
Schulk |
257 |
Incluant |
257 |
Nuage |
257 |
Roy |
256 |
Lien enfants |
256 |
Pikachu |
256 |
Bowser |
256 |
Miu deux |
256 |
Luigi |
255 |
Terry |
255 |
Sonique |
255 |
Ness |
254 |
chercher |
254 |
Shizue |
253 |
Luca |
252 |
Capitaine Falcon |
250 |
Pudding |
250 |
Donkey Kong |
249 |
Mars |
249 |
Lucina |
248 |
Zéro Suit Sams |
246 |
Ridley |
245 |
Joker |
244 |
Kirby |
244 |
Béret / Beres |
241 |
Ganondorf |
240 |
référence
[Premier grattage] J'ai essayé de créer un personnage VIP pour Smash Bra [Beautiful Soup] [Analyse des données]