pandas 分批次读取大文件---chunkSize

    当要处理一个较大文件时,一次性加载到内存可能导致内存溢出,pandas提供了一种以迭代器的方式读取文件,我们可以手动设置每个批次要读取的数据条数chunkSize。

import pandas as pd
import chardet

# 检测文件编码
with open(r'data.txt', 'rb') as f:
    encode = chardet.detect(f.readline())['encoding']
print(encode)

# 建议如果检测出编码为ascii 则采用utf-8编码
reader = pd.read_csv(r'data.txt', iterator=True, encoding=encode, sep='\t')
# type(reader) is 
#reader = pd.read_csv(files_name,
#    engine='python',
#    sep=separation,
#    encoding='utf-8',
#    iterator=True,
#    error_bad_lines=False
#)


# 每次读取的行数
chunkSize = 10000
chunks = []
while True:
    try:
        chunk = reader.get_chunk(chunkSize)
        # type(chunk) is 
        # 需要注意的是文件的列名
        # do something
        chunks.append(chunk)

你可能感兴趣的:(python,pandas,python)