我有一个非常大的csv文件大约10GB。当我试图读入iPython笔记本使用读取csv文件的一部分
data = pd.read_csv("data.csv")
我的笔记本电脑卡住了。是否有可能只读取10,000行或500 MB的csv文件。
我有一个非常大的csv文件大约10GB。当我试图读入iPython笔记本使用读取csv文件的一部分
data = pd.read_csv("data.csv")
我的笔记本电脑卡住了。是否有可能只读取10,000行或500 MB的csv文件。
这是可能的。您可以创建一个迭代器,通过将iterator=True
与您所需的chunksize
一起传递到read_csv
,一次将某个特定大小的csv数据块作为DataFrame生成。
df_iter = pd.read_csv('data.csv', chunksize=10000, iterator=True)
for iter_num, chunk in enumerate(df_iter, 1):
print(f'Processing iteration {iter_num}')
# do things with chunk
或者更简单地
for chunk in pd.read_csv('data.csv', chunksize=10000):
# do things with chunk
另外,如果有,只是你想读,你可以使用skiprows
和nrows
选项来启动,在一个特定的行,然后读取CSV的特定部分n
行,如命名所示。
可能是内存问题。在read_csv上,你可以设置chunksize(你可以指定行数)。
或者,如果您不需要所有列,则可以更改read_csv上的usecols以仅导入所需的列。
除非你提供了一个例子,这更像是一个评论,你在这里所说的与@Mitch已经回答的完全匹配...... – DJK
查看'iterator'和'chunksize'选项来处理文件块。 – Barmar
你是否尝试阅读文档? [阅读csv](https://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_csv.html),提示!看'nrows =' – DJK
@ djk47463可以使用nrows =获得随机行吗? –