读取csv文件的一部分

时间:2017-09-22 01:14:34

标签: python pandas csv

我有一个非常大的csv文件大约10GB。我什么时候尝试使用

读入iPython笔记本
data = pd.read_csv("data.csv")  

我的笔记本电脑卡住了。是否可以读取10,000行或500 MB的csv文件。

2 个答案:

答案 0 :(得分:6)

有可能。您可以通过将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的特定部分,则可以使用skiprowsnrows选项从特定行开始,然后阅读n行,正如命名所暗示的那样。

答案 1 :(得分:-1)

可能是一个记忆问题。在read_csv上,您可以设置chunksize(您可以在其中指定行数)。

或者,如果您不需要所有列,则可以更改read_csv上的usecols以仅导入所需的列。