Есть ли способ сохранить большие данные panda в нескольких (parquet / csv) файлах, как это делает Pyspark? - PullRequest
0 голосов
/ 16 января 2020

У меня большой pandas фрейм данных, и мне нужно сохранить его в несколько файлов (parquet / csv), чтобы уменьшить объем пространства для файла.

Я могу разделить его, разделив фрейм данных на несколько фреймов данных. и сохранить каждый отдельно

Есть ли способ сделать это напрямую?

1 Ответ

1 голос
/ 16 января 2020

Вот простая функция, которую я часто использую:

def df_to_parquets(df, chunk_size=10):

    """
    Saves pandas dataframe to parquet in chunks
    """

    grp = df.groupby(df.index // chunk_size)
    n_grp = grp.ngroups

    for i in range(n_grp):
        grp.nth(i).to_parquet(f'file_{i}.gzip', compression='gzip')

Образцы данных

df = pd.DataFrame(np.random.rand(10, 5), columns = ['col_'+str(x) for x in range(1, 6)])

df_to_parquets(df, chunk_size=2)

Это позволит вывести 5 разных файлов паркета.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...