【发布时间】:2020-01-16 13:03:42
【问题描述】:
我有大熊猫数据框,我需要将其保存到多个 (parquet/csv) 文件中以减少文件的卷空间。
我可以通过将数据框划分为多个数据框并分别保存来进行划分
有没有办法直接做到这一点?
【问题讨论】:
-
据我所知,Pandas 中没有这样的方法。恕我直言,你可以从
Dask看to_parquet。
我有大熊猫数据框,我需要将其保存到多个 (parquet/csv) 文件中以减少文件的卷空间。
我可以通过将数据框划分为多个数据框并分别保存来进行划分
有没有办法直接做到这一点?
【问题讨论】:
Dask 看to_parquet。
这是我经常使用的一个简单函数:
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')
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 个不同的拼花文件。
【讨论】: