Wat zich in een CSV bevindt en wat zich in een dataframe bevindt, zijn twee heel verschillende dingen. Bijvoorbeeld 9.9
en 9.99999999999999
in een CSV dezelfde hoeveelheid ruimte innemen in een dataframe.
Dat gezegd hebbende, nemen gegevens in een dataframe veel minder ruimte in beslag dan gegevens in een lijst. Het maken van een lijst is duur in het geheugen; en toevoegen aan een dataframe vereist dat panda's een nieuw (groter) dataframe maken, alles kopiëren en vervolgens het originele dataframe achterlaten om te worden weggegooid.
U zou het waarschijnlijk veel beter doen als u een dataframe van 60000 rijen vooraf had toegewezen (of hoeveel rijen u in totaal ook heeft); bijv.:
data = pd.DataFrame(np.empty((60000,), dtype=[
('x', np.uint8),
('y', np.float64)
]))
en vervolgens voor elke rij gegevens voor die rij ingevoegd, zonder te vertrouwen op dataset
lijst:
data.values[count,:] = rowdata_at_count
Dit is niet type-veilig, maar het is vrij snel (omdat er geen toewijzingen plaatsvinden), dus zorg ervoor dat rowdata_at_count
is een lijst waarvan de elementen overeenkomen met kolomtypes.
BEWERKEN
Ja, het toevoegen van 100 regels is, geloof ik, net als 100 concats van één regel (omdat elke append de tabel opnieuw moet toewijzen en kopiëren, net als concat). Vooraf toewijzen vermijdt zowel toevoegen als samenvoegen:de tabelgrootte verandert niet, er hoeft niet opnieuw te worden toegewezen en gekopieerd.