我有一个非常大的csv文件,约10GB。每当我尝试使用iPython笔记本读取它时,
data = pd.read_csv("data.csv")
我的笔记本电脑经常卡顿。是否可以只读取CSV文件的10000行或500MB大小的部分内容?
这是可能的。您可以通过将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
如果只想读取 CSV 文件的特定部分,可以使用 skiprows
和 nrows
选项从特定行开始读取,并依次读取 n
行,如其名称所示。
read_csv()
函数中参数iterator
的含义。当我们将iterator = True
时(默认值为False),是否会有任何区别?我已经查过了,但没有帮助。谢谢。 - Chau Pham
iterator
和chunksize
选项以分块处理文件。 - Barmarnrows=
。 - DJK