Hvad der er i en CSV og hvad der er i en dataramme er to meget forskellige ting. For eksempel 9.9
og 9.99999999999999
i en CSV vil tage den samme mængde plads i en dataramme.
Når det er sagt, fylder data i en dataramme meget mindre end data på en liste. At konstruere en liste er dyrt i hukommelsen; og tilføjelse til en dataramme kræver, at pandaer laver en ny (større) dataramme, kopierer alt og lader den originale dataramme blive opsamlet af affald.
Du ville sandsynligvis klare dig meget bedre, hvis du forudallokerede en dataramme på 60.000 rækker (eller hvor mange rækker du har i alt); f.eks.:
data = pd.DataFrame(np.empty((60000,), dtype=[
('x', np.uint8),
('y', np.float64)
]))
og derefter for hver række indsatte data for den pågældende række uden at stole på dataset
liste:
data.values[count,:] = rowdata_at_count
Dette er ikke typesikkert, men det er ret hurtigt (da der ikke sker nogen tildelinger), så sørg for at rowdata_at_count
er en liste, hvis elementer svarer til kolonnetyper.
REDIGER
Ja, at tilføje 100 linjer er, tror jeg, som 100 konkatter af en linje (da hvert tilføj skal omfordele og kopiere tabellen, ligesom concat). Forudallokering undgår både tilføjelse og konkat:tabelstørrelsen ændres ikke, ingen omallokering og kopiering skal udføres.