Utworzyłem ramkę danych z następującego arkusza Excela: https://imgur.com/a/m8Uj1Tf

Każdy wiersz to pojedynczy „mon” z własnymi określonymi statystykami. Stworzyłem klasę dla mons, ale teraz nie jestem pewien, jak je rozdzielić i nazywać ich po imieniu.

Ostatecznie chciałbym móc zadzwonić do Mon 1 i Mon 2 i stworzyć nową klasę, która będzie zawierała logikę walki na podstawie ich statystyk.

import pandas as pd

df = pd.read_excel(r'C:\Users\ericb\Desktop\Simulator.xlsx')

for row in df.itertuples(index=False):
    print(row)


0
EB_Crypto 20 grudzień 2019, 03:58
Po co w ogóle używać pandas?
 – 
juanpa.arrivillaga
20 grudzień 2019, 04:00
@juanpa.arrivillaga pomyślał, że to najlepsza opcja do importowania danych Excela. Czy jest lepszy sposób?
 – 
EB_Crypto
20 grudzień 2019, 04:03
2
Czy musi być xlsx? Czy proste .csv nie wystarczy? Jeśli tak, po prostu użyj modułu csv.
 – 
juanpa.arrivillaga
20 grudzień 2019, 04:04
Czy możesz udostępnić arkusz kalkulacyjny dla dokumentów Google zamiast obrazu? Pomogłoby to w testowaniu odpowiedzi
 – 
oppressionslayer
20 grudzień 2019, 04:08
1
Cóż, możesz użyć csv.reader lub csv.DictReader, jeśli chcesz. Ale trzymanie się pandas, coś takiego jak [Mon(r.Name, r.HP, r.PA, r.PD, r.SA, r.SD, r.SPD, r.Type1, r.Type2, r.A1, r.A2, r.A3) for r in df.itertuples()] też by zadziałało. Teraz masz listę Mon obiektów
 – 
juanpa.arrivillaga
20 grudzień 2019, 04:08

1 odpowiedź

Użyj df.iterrows () i utwórz instancję klasy dla każdego wiersza.

1
Daniel Paczuski Bak 20 grudzień 2019, 04:07
Edytowałem post. Dzięki temu kodowi udało mi się oddzielić każdy wiersz. Od tego momentu, jak sugerowałbyś, aby utworzyć instancję dla klasy dla każdego wiersza?
 – 
EB_Crypto
20 grudzień 2019, 08:03
Czy wiesz, jak tworzyć instancje klasy? Po prostu wprowadź elementy wiersza (dostępne jak lista, z nawiasami) do inicjatora.
 – 
Daniel Paczuski Bak
20 grudzień 2019, 09:59
Czy muszę to zrobić dla każdej nazwy wiersza, nie jestem pewien, jaki jest najbardziej efektywny sposób? jestem stosunkowo nowy
 – 
EB_Crypto
20 grudzień 2019, 10:04