用pandas读取54gb数据集

2024-03-28 16:23:47 发布

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

目前正在尝试获取一个非常大的数据集样本~54 gb。但是,因为我知道获取任何大于1GB的数据都会变得非常低效,所以我只想读取前100k行。到目前为止,我的情况是:

df_chunk = pd.read_csv(r'pol.csv', chunksize=1000000, engine='python')

    chunk_list = []  # append each chunk df here

    # Each chunk is in df format
    for chunk in df_chunk:
        # Once the data filtering is done, append the chunk to list
        chunk_list.append(chunk)

    # concat the list into dataframe
    df_concat = pd.concat(chunk_list)

但是,运行此命令会产生以下错误:

 File "path", line 3121, in _get_lines new_rows.append(next(self.data)) _csv.Error: ',' expected after '"'

将引擎更改为C会引发解析错误,然后设置low_memory = False对python引擎不起作用。另外,设置error_bad_lines= True跳过数据集中的许多行。你知道吗

我只需要数据集的一小部分就可以使用,但要做到这一点非常困难。你知道吗


Tags: csvthe数据in引擎dfdatais
1条回答
网友
1楼 · 发布于 2024-03-28 16:23:47

您的大CSV中似乎存在一些格式问题。我建议您首先用一小部分数据创建一个较小的文件,并手动检查其格式问题:它们需要修复才能成功解析。提取部分,做

with open('pol.csv') as f:
    with open('pol_part.csv','w') as g:
        for i in range(1000): # replace 1000 with 100000 when ready
            g.write(f.readline())

相关问题 更多 >