读入csv文件

2024-04-19 18:09:29 发布

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

我目前正在读取一个大的csv文件(大约1亿行),使用https://docs.python.org/2/library/csv.html中描述的命令行,例如:

import csv
with open('eggs.csv', 'rb') as csvfile:
     spamreader = csv.reader(csvfile, delimiter=' ', quotechar='|')
     for row in spamreader:
          process_row(row)

我怀疑这是相当慢的,因为每一行都是单独读入的(需要对硬盘进行大量的读取调用)。有没有办法一次读入整个csv文件,然后对其进行迭代?虽然文件本身的大小很大(例如5Gb),但我的机器有足够的ram将其保存在内存中。你知道吗


Tags: 文件csvcsvfile命令行httpsorgimportdocs
3条回答

my machine has sufficient ram to hold that in memory.

那么,在迭代器上调用list

spamreader = list(csv.reader(csvfile, delimiter=' ', quotechar='|'))
import pandas as pd
df =pd.DataFrame.from_csv('filename.csv')

这将把它作为一个熊猫数据帧读入,这样你就可以用它做各种有趣的事情

是的,有一种方法可以一次读取整个文件:

with open('eggs.csv', 'rb', 5000000000) as ...:
    ... 

引用:https://docs.python.org/2/library/functions.html#open

相关问题 更多 >