Pandas处理较大文件、读文件


在这里插入图片描述

1、读取文件中前部分

通过nrows参数,来设置读取文件的前多少行,nrows是一个大于等于0的整数。

 data = pd.read_csv("data.csv",nrows=5)
    print(data)
    '''
        a   b   c
    0   0   1   2
    1   3   4   5
    2   6   7   8
    3   9  10  11
    4  12  13  14
    '''
2、逐块读取文件
#设置chunksize参数,来控制每次迭代数据的大小
    chunker = pd.read_csv("data.csv",chunksize=5)
    for piece in chunker:
        print(type(piece))
        #<class 'pandas.core.frame.DataFrame'>
        print(len(piece))
将上面的chunksize参数设置为8,那么第一次迭代的时候包含8条数据,第二次迭代就只能包含2条数据了。
其实,每次进行迭代的时候还是一个DataFrame类型的数据结构。

需要注意的是如果原csv文件中没有表头,会默认将第一行数据作为columns,会发现数据少一条,此时要将不设置columns

data = pd.read_csv(filename, sep='::', names=list('uirt'), index_col=False, usecols=range(len('uirt')),engine = 'python', iterator=True)
loop = True
chunkSize = 100000
chunks = []
while loop:
    try:
        chunk = data.get_chunk(chunkSize)
        chunks.append(chunk)
    except StopIteration:
        loop = False
        print "Iteration is stopped."
data = pd.concat(chunks, ignore_index=True)#连接
3、获取指定列

只关注其中的某些列,如果把每行都读取出来,再提取信息,显然会增加IO量,因此我们可以在读文件的时候,定给read_csv()方法的参数,从而提高效率。

file = pd.read_csv('demo.csv',usecols=['column1', 'column2', 'column3'])
4、读取行

使用read_csv()方法中的nrows参数,设定读取的行数。

file = pd.read_csv('demo.csv',nrows=1000,usecols=['column1', 'column2', 'column3'])

参考:https://blog.csdn.net/sinat_29957455/article/details/79057650

猜你喜欢

转载自blog.csdn.net/qq1195365047/article/details/89003466