[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]