Pandas to_csv
записывает файлы с очень разными размерами в зависимости от того, являются ли они многоиндексными рядами или простыми нерастянутыми кадрами данных (последние кажутся меньше половины размер).Pandas: разность памяти при сохранении в csv (Dataframe vs multi-index Series)
Возможно, что-то похожее на это из формата csv, но я не могу это понять.
Почему серия pandas намного больше в формате .csv, чем Dataframes?
код, чтобы создать пример этого:
# imports
import pandas as pd
from numpy.random import random
from random import randint
# generate some data (1000 x 1000)
n_rows = 1000
n_cols = 1000
large = pd.DataFrame(np.random.random((n_rows, n_cols)))
# generate some indexes
large['index_1'] = [randint(0,100) for i in range(n_rows)]
large['index_2'] = [random() for i in range(n_rows)]
# make it a multi-index
large = large.set_index(['index_1', 'index_2']).sort_index()
# save as stacked and unstacked
large.to_csv('unstacked_example.csv')
large.stack().reset_index().to_csv('stacked_example.csv')
Затем получить размер с ls -lh
:
unstacked_example.csv - 19М stacked_example.csv - 50М