保存大型数据框为CSV文件速度较慢的问题可能是由于数据量过大,写入磁盘的速度较慢导致的。以下是一些可能的解决方法:
compression
参数来指定压缩方式。# 以gzip压缩方式保存数据框为CSV文件
df.to_csv('data.csv.gz', compression='gzip')
chunk_size = 100000 # 每个数据块的大小
num_chunks = len(df) // chunk_size + 1 # 计算数据块的数量
for i in range(num_chunks):
start_idx = i * chunk_size
end_idx = (i + 1) * chunk_size
chunk = df.iloc[start_idx:end_idx]
chunk.to_csv(f'data_chunk{i}.csv', index=False)
# 保存数据框为Parquet格式
df.to_parquet('data.parquet')
# 保存数据框为Feather格式
df.to_feather('data.feather')
multiprocessing
模块来实现并行处理。from multiprocessing import Pool
num_processes = 4 # 并行处理的进程数量
def save_chunk(chunk):
chunk.to_csv('data.csv', mode='a', header=False, index=False)
# 将数据框分成多个数据块
chunks = np.array_split(df, num_processes)
# 使用多个进程并行保存数据块
with Pool(processes=num_processes) as pool:
pool.map(save_chunk, chunks)
以上是一些可能的解决方法,具体选择哪种方式取决于你的需求和计算机的配置。