达斯克合并和导出cs

2024-04-26 14:47:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我有几个大于5GB的大文件需要合并。我的RAM只有8gb。 目前,我正在使用Dask将所有文件合并在一起,并尝试将数据帧导出到CSV。由于内存不足,我无法导出它们。在

import dask.dataframe as dd
file_loc_1=r"..."

file_loc_2=r"..."

data_1=dd.read_csv(file_loc_1,dtype="object",encoding='cp1252')
data_2=dd.read_csv(file_loc_2,dtype="object",encoding='cp1252')

final_1=dd.merge(file_data_1,file_data_2,left_on="A",right_on="A",how="left")

final_loc=r"..."
dd.to_csv(final_1,final_loc,index=False,low_memory=False)

如果Dask不是处理数据的好方法,请随时推荐新方法!在

谢谢!在


Tags: 文件csv数据readdataobjectleftloc
1条回答
网友
1楼 · 发布于 2024-04-26 14:47:51

您可以使用熊猫.read_csv:设置chunksize参数该方法返回迭代器。然后,您可以在附加模式下编写一个csv。在

代码示例(未测试):

import pandas ad pd
import os

src = ['file1.csv', 'file2.csv']
dst = 'file.csv'

for f in src:
    for df in pd.read_csv(f,chuncksize=200000):
        if not os.path.isfile(dst):
            df.to_csv(dst)
        else:
            df.to_csv(dst,mode = 'a', header=False)

有用的链接:

http://acepor.github.io/2017/08/03/using-chunksize/

Panda's Write CSV - Append vs. Write

https://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_csv.html

相关问题 更多 >