pandas如何读取大型csv文件?

csv数据集很大,怎么做到每次读取若干行,然后程序去处理,然后再接着读取若干行,程序再去处理?

可以用流式读取。Pandas 支持流式读取。

举个例子,有这样一份test.csv

num,square
1,1
2,4
3,9
4,16
5,25
6,36
7,49
8,64
9,81
10,100
11,121
12,144
13,169
14,196
15,225
...

用流式的方式读取,如下

csv_iter = pd.read_csv("test.csv", iterator=True, chunksize=10)
for df in csv_iter:
    print(df)

iterator=True 表示流式读取,chunksize = 10 表示每次读取10行。

输出是这样的

   num  square
0    1       1
1    2       4
2    3       9
3    4      16
4    5      25
5    6      36
6    7      49
7    8      64
8    9      81
9   10     100
    num  square
10   11     121
11   12     144
12   13     169
13   14     196
14   15     225
15   16     256
16   17     289
17   18     324
18   19     361
19   20     400
...

每个都是一个 10行的DataFrame。