У Панд есть метод .to_hdf()
для сохранения dataframe
в виде таблицы HDF.Однако каждый раз, когда запускается команда .to_hdf(path, key)
, размер файла увеличивается.
import os
import string
import pandas as pd
import numpy as np
size = 10**4
df = pd.DataFrame({"C":np.random.randint(0,100,size),
"D": np.random.choice(list(string.ascii_lowercase), size = size)})
for iteration in range(4):
df.to_hdf("a_file.h5","key1")
print(os.path.getsize("a_file.h5"))
И вывод ясно показывает, что размер файла увеличивается:
# 1240552
# 1262856
# 1285160
# 1307464
Поскольку новый df сохраняется каждый раз, размер hdf должен быть постоянным.
Поскольку увеличение выглядит довольно скромным для малых df, при большем df это быстро приводит к файлам hdf, которые значительно больше, чем размер файла.файл при первом сохранении.
Размеры, которые я получаю с 10 ** 7 длинным фреймом данных после 7 итераций:
29MB, 48MB, 67MB, 86MB, 105MB, 125MB, 144MB
Почему так, что файл hdfразмер не постоянен и увеличивается каждый новый to_hdf()
?