Cosa c'è in un CSV e cosa c'è in un dataframe sono due cose molto diverse. Ad esempio, 9.9
e 9.99999999999999
in un CSV occuperà la stessa quantità di spazio in un dataframe.
Detto questo, i dati in un dataframe occupano molto meno spazio dei dati in un elenco. Costruire un elenco è costoso in memoria; e l'aggiunta a un dataframe richiede che i panda creino un nuovo dataframe (più grande), copi tutto, quindi lasci il dataframe originale da raccogliere.
Probabilmente faresti molto meglio se preallocassi un dataframe di 60000 righe (o quante righe hai in totale); es.:
data = pd.DataFrame(np.empty((60000,), dtype=[
('x', np.uint8),
('y', np.float64)
]))
e quindi per ogni riga inserita i dati per quella riga, senza fare affidamento su dataset
elenco:
data.values[count,:] = rowdata_at_count
Questo non è sicuro dai tipi, ma è piuttosto veloce (poiché non si verificano allocazioni), quindi assicurati rowdata_at_count
è un elenco i cui elementi corrispondono ai tipi di colonna.
MODIFICA
Sì, l'aggiunta di 100 righe è, credo, come 100 concat di una riga (poiché ogni append deve riallocare e copiare la tabella, proprio come concat). La preallocazione evita sia append che concat:la dimensione della tabella non cambia, non è necessario riallocare e copiare.