Това, което е в CSV и това, което е в рамка с данни, са две много различни неща. Например 9.9
и 9.99999999999999
в CSV ще заема същото количество място в рамка с данни.
Въпреки това данните в рамка с данни заемат много по-малко място от данните в списък. Конструирането на списък е скъпо в паметта; и добавянето към рамка от данни изисква pandas да направи нова (по-голяма) рамка от данни, да копира всичко, след което да остави оригиналната рамка от данни за събиране на отпадъци.
Вероятно ще се справите много по-добре, ако предварително разпределите рамка от данни от 60 000 реда (или колкото редове имате общо); напр.:
data = pd.DataFrame(np.empty((60000,), dtype=[
('x', np.uint8),
('y', np.float64)
]))
и след това за всеки ред вмъкнати данни за този ред, без да се разчита на dataset
списък:
data.values[count,:] = rowdata_at_count
Това не е безопасно за тип, но е доста бързо (тъй като не се извършват разпределения), така че се уверете, че rowdata_at_count
е списък, чиито елементи съответстват на типове колони.
РЕДАКТИРАНЕ
Да, добавянето на 100 реда е, според мен, като 100 concats на един ред (тъй като всяко добавяне трябва да преразпредели и копира таблицата, точно като concat). Предварителното разпределяне избягва както добавянето, така и прехвърлянето:размерът на таблицата не се променя, не е необходимо преразпределяне и копиране.