有没有办法像 Pyspark 那样将大熊猫数据保存在多个(parquet/csv)文件中?

Ahm*_*man 2 csv pandas parquet

我有大的 pandas 数据框,我需要将其保存到多个(parquet/csv)文件中以减少文件的体积空间。

我可以通过将数据帧划分为多个数据帧并单独保存每个数据帧来划分它

有没有一种方法可以直接做到这一点?

YOL*_*OLO 5

这是我经常使用的一个简单函数:

def df_to_parquets(df, chunk_size=10):
    """
    Saves pandas dataframe to parquet in chunks
    """
    
    grp = df.groupby(df.index // chunk_size)
    for index, (name, group) in enumerate(grp):
        group.to_parquet(f'file_{index}.gzip', compression='gzip')
Run Code Online (Sandbox Code Playgroud)

样本数据

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)
Run Code Online (Sandbox Code Playgroud)

这将输出 5 个不同的 parquet 文件。