当数据文件过大时,由于计算机内存有限,需要对大文件进行分块读取:
import pandas as pd
f = open('E:/学习相关/Python/数据样例/用户侧数据/test数据.csv')
reader = pd.read_csv(f, sep=',', iterator=True)
loop = True
chunkSize = 100000
chunks = []
while loop:
try:
chunk = reader.get_chunk(chunkSize)
chunks.append(chunk)
except StopIteration:
loop = False
print("Iteration is stopped.")
df = pd.concat(chunks, ignore_index=True)
print(df)
read_csv()函数的iterator参数等于True时,表示返回一个TextParser以便逐块读取文件;
chunkSize表示文件块的大小,用于迭代;
TextParser类的get_chunk方法用于读取任意大小的文件块;
StopIteration的异常表示在循环对象穷尽所有元素时报错;
concat()函数用于将数据做轴向连接:
pd.concat(objs, axis=0, join='outer', join_axes=None,
ignore_index=False, keys=None, levels=None, names=None,
Verify_integrity=False)
常用参数:
objs:Series,DataFrame或者是Panel构成的序列list;
axis:需要合并连接的轴,0是行,1是列;
join:连接的参数,inner或outer;
ignore=True表示重建索引。

本文介绍了一种处理大数据文件的方法,通过使用Python的pandas库实现大文件的分块读取,有效解决了内存限制问题。文章详细展示了如何设置迭代器以逐块读取CSV文件,并利用concat函数进行数据整合。
1万+

被折叠的 条评论
为什么被折叠?



