Python全系列 教程
3567个小节阅读:5931.5k
目录
鸿蒙应用开发
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
超大数据文件在使用 pandas 进行处理时可能需要考虑两个问题:读取速度,内存用量。
逐块读取:将文件拆分为较小的块,并逐块读取和处理数据。可以使用 Pandas 的 read_csv()
方法的 chunksize
参数来实现逐块读取。这样可以减少内存占用,但需要注意在处理完每个块后及时释放内存
xxxxxxxxxx
import pandas as pd
#使用 chunksize 参数
dftmp = pd.read_csv('stu_data.csv', usecols = [0,2,3,4,5,6,7], chunksize = 5)
type(dftmp) # 注意得到的并不是一个数据框,而是 TextFileReader
n = 0
for item in dftmp: # 注意重复运行之后的效果
print(item)
n += 1
if n > 2:
break
使用迭代器:使用迭代器来逐行或逐块读取数据,而不是一次性加载所有数据到内存中。可以使用 Pandas 的 read_csv()
方法的 iterator=True
参数来创建迭代器,并使用 get_chunk()
方法逐步读取数据块
xxxxxxxxxx
dftmp = pd.read_csv('stu_date.csv', usecols = [0,2,3,4,5,6,7], iterator = True)
type(dftmp) # 注意得到的并不是一个数据框,而是 TextFileReader
dftmp.get_chunk(10) # 注意重复运行之后的效果
数据预处理:在读取数据之前进行预处理,可以降低内存占用。可以使用 Pandas 的数据类型转换方法,如 astype()
,将数据类型转换为占用更少内存的类型,例如将浮点数转换为整数,将字符串转换为分类类型等
xxxxxxxxxx
data = pd.DataFrame({
"a":[0,1, 2, 3, 4, 5, 6, 7, 8, 9],
"b":["祖安狂人","祖安狂人","冰晶凤凰","冰晶凤凰", "祖安狂人","祖安狂人","祖安狂人","冰晶凤凰", "冰晶凤凰","祖安狂人"]})
print(data)
data.info()
data['a'] = data['a'].astype('int8')
data.info()
实时学习反馈
1. 在 Pandas 进行处理大文件时可能需要考虑两个问题_____和内存用量。
A 读取方法
B 读取速度
2. Pandas中对文件进行分段读取,下划线处需要填写的代码是_____:
xxxxxxxxxx
#分段读取文件,指定读取的数量
dftmp = pd.read_csv('stu_data.csv', usecols = [0,2,3,4,5,6,7], _____ = 5)
A size
B chunksize
答案
1=>B 2=>B