Pandas 将多个CSV转换为单分区拼花地板数据集

Pandas 将多个CSV转换为单分区拼花地板数据集,pandas,parquet,fastparquet,Pandas,Parquet,Fastparquet,我有一组CSV文件,每个文件对应一年的数据,每个文件中都有year列。我想将它们转换成单个拼花地板数据集,按年份进行分区,以便以后在熊猫中使用。问题是,所有年份组合在一起的数据帧太大,无法放入内存中。是否可以逐个迭代地编写拼花地板分区 我正在使用fastparquet作为引擎 简化的代码示例。这段代码会增加内存使用并导致崩溃 df=[] 对于范围内的年份(2000年、2020年): 追加(pd.read_csv(f'{year}.csv')) df=局部固结(df) df.to_拼花地板('al

我有一组CSV文件,每个文件对应一年的数据,每个文件中都有
year
列。我想将它们转换成单个拼花地板数据集,按年份进行分区,以便以后在熊猫中使用。问题是,所有年份组合在一起的数据帧太大,无法放入内存中。是否可以逐个迭代地编写拼花地板分区

我正在使用
fastparquet
作为引擎

简化的代码示例。这段代码会增加内存使用并导致崩溃

df=[]
对于范围内的年份(2000年、2020年):
追加(pd.read_csv(f'{year}.csv'))
df=局部固结(df)
df.to_拼花地板('all_YEAR.pq',partition_cols=['YEAR']))
我试着一年一年地写,就像这样

适用于范围内的年份(2000年、2020年):
df=pd.read_csv(f'{year}.csv')
df.to_拼花地板('all_YEAR.pq',partition_cols=['YEAR']))

数据文件都在各自的
YEAR=XXXX
目录中,但是当我试图读取这样的数据集时,我只得到了去年的数据。也许在编写单独的分区后可以修复拼花地板元数据?

我想我找到了一种使用
fastparquet.writer.merge()函数的方法。拼花地板文件每年一个接一个地写入,省去年份列并给它们适当的名称,然后
merge()
函数创建顶级元数据文件

下面的代码是一个要点,因为我在具体的用例中省略了许多细节

years=范围(2000年、2020年)
年份:
df=pd.read_csv(f'{year}.csv').drop(columns=['year']))
df.to_拼花地板(f'all_years.pq/YEAR={YEAR})
fastparquet.writer.merge([f'all_years.pq/YEAR={y}表示y年])
df_all=pd.read_拼花地板('all_years.pq'))