Python导入大型数据的两种方法

  • A+
所属分类:数据分析

有时候我们会拿到一些很大的文本文件,完整读入内存,读入的过程会很慢,甚至可能无法读入内存,或者可以读入内存,但是没法进行进一步的计算,这个时候如果不需要进行很复杂的运算,可以使用read_csv提供的chunksize或者iterator参数,来部分读入文件,处理完之后再通过to_csv的mode='a',将每部分结果逐步写入文件。

 

这个就是Pandas提供的,两种处理大型数据的方案,一种是使用chunksize,每次都读取一定行数的数据,处理完成后再读取下一批。另外一种就是使用iterator,提供循环读取的方式,可以灵活地根据自己需求,定制每次读取的行数。下面我们来看看这两种方法的使用方式。

 

一、chunksize

设置该参数,每次读取一定行的数据,处理完成后,再读取下一批的数据。

>>> import pandas;

>>> chunks = pandas.read_csv('D:/PDA/data.csv', chunksize=5);

>>> for chunk in chunks:

... print('---------------------------------------------');

... print(chunk);

...

 

---------------------------------------------

等级 资源

0 1 218

1 2 264

2 3 319

3 4 386

4 5 467

 

二、iterator

设置该参数为True,提供循环读取的方式,可以灵活地根据自己需求,定制每次读取的行数。

>>> reader = pandas.read_csv('D:/PDA/data.csv', iterator=True);

>>>

>>> while True:

... try:

... chunk = reader.get_chunk(3);

... print('---------------------------------------------');

... print(chunk)

... except StopIteration:

... break;

...

---------------------------------------------

等级 资源

0 1 218

1 2 264

2 3 319

>>

Python导入大型数据的两种方法

最后,如果大家只是想看看前面几行的数据,那么可以使用nrows参数,只是读取前面几行数据进行查看即可,没有必要全部载入所有的数据到DataFrame中。

data = pandas.read_csv('D:/PDA/data.csv', nrows=3);

>> print(data)

等级   资源

0   1  218

1   2  264

2   3  319

>>>

 

来源:大数据分析实战

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:1   其中:访客  1   博主  0

    • 马超金博客 马超金博客 3

      虽然看不懂,但支持一下