
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.youkuaiyun.com/sinat_29957455/article/details/79057650