Pandas DataFrame内存优化技巧:让数据处理更高效
创作时间:
作者:
@小白创作中心
Pandas DataFrame内存优化技巧:让数据处理更高效
引用
CSDN
1.
https://blog.csdn.net/Gefangenes/article/details/137612079
在大数据时代,数据规模的快速增长对内存管理提出了更高的要求。Pandas作为数据分析领域的常用工具,其内存使用效率直接影响到数据处理的性能。本文将通过一个具体案例,展示如何通过优化数据类型来显著降低Pandas DataFrame的内存占用。
准备数据
首先,我们创建一个包含一百万条记录的测试数据集。数据集包含以下字段:
- age:整数类型数值
- grade:有限个数的字符串
- qualified:是否合格
- ability:能力评估,浮点类型数值
import pandas as pd
import numpy as np
def fake_data(size):
df = pd.DataFrame()
df["age"] = np.random.randint(1, 30, size)
df["grade"] = np.random.choice(
["一年级", "二年级", "三年级", "四年级", "五年级", "六年级"],
size,
)
df["qualified"] = np.random.choice(["合格", "不合格"], size)
df["ability"] = np.random.uniform(0, 1, size)
return df
df = fake_data(1_000_000)
df.head()
检测内存占用
查看优化前的内存占用情况:
df.info()
初始内存占用约为26.7MB。
优化内存
接下来,我们将逐步优化DataFrame的内存占用,并测试每一步优化后的效果。
3.1. 优化整型数据
首先优化整型数据(age)的内存占用。从df.info()的结果可以看出,age的类型是int32。对于年龄来说,int8(数值范围:-128~127)就足够了。
df["age"] = df["age"].astype("int8")
df.info()
优化后,内存占用从26.7MB降至23.8MB。
3.2. 优化浮点型数据
接下来优化浮点型数据(ability)。测试数据中ability的值是6位小数,类型是float64。转换成float16可能会改变值,所以这里转换成float32。
df["ability"] = df["ability"].astype("float32")
df.info()
优化后,内存占用进一步从23.8MB降至20.0MB。
3.3. 优化布尔型数据
接下来优化布尔型数据(qualified)。这个值虽然是字符串类型,但是它的值只有两种(合格和不合格),所以可以转换成布尔类型。
df["qualified"] = df["qualified"].map({"合格": True, "不合格": False})
df.info()
优化后,内存占用进一步从20.0MB降至13.4MB。
3.4. 使用category类型
最后,优化字符串类型的grade字段。这个字段的值只有6个,可以转换为pandas中的category类型。
df["grade"] = df["grade"].astype("category")
df.info()
优化后,内存占用进一步从13.4MB降至6.7MB。
总结
通过上述优化步骤,内存占用从最初的26.7MB降至6.7MB,优化效果显著。这表明,在数据分析过程中,合理选择数据类型对提高内存使用效率至关重要。建议在构造DataFrame时,根据数值的范围和特点,选择合适的类型,避免盲目使用默认类型。
热门推荐
台儿庄古城:穿汉服拍大片的最佳姿势
冬日平遥古城:穿越千年的温暖之旅
龙口南山大佛:世界最大铜铸佛像里的祈福圣地
旅游旺季必备:快速清除酒店床单尿渍妙招
元旦祈福:龙口南山大佛的文化魅力
如何优雅处理孩子在酒店尿床?
冬日自驾打卡:武夷山&三坊七巷
江西四日游:打卡滕王阁、望仙谷和三清山!
百变大侦探:金蝉脱壳第四关通关攻略
眼睑浮肿怎么办?从诊断到治疗的全方位指南
绍兴镜湖湿地公园:生态保护与旅游发展的双赢之路
绍兴镜湖国家城市湿地公园:最美自然景观打卡地
沙溪古镇PK大理古城:谁才是云南最美小镇?
大理沙溪古镇:白族三月三狂欢倒计时!
床车自驾游必备装备全攻略
2025广西旅游年:跟着演出游广西
春节打卡“一路繁花之旅”,感受广西民俗魅力
冬天必吃:平定粉条豆腐丝的做法大公开!
苏州周边三颗明珠:东山、西山、木渎深度游
苏州最美自然景观打卡攻略:香山、石湖、阳澄湖
张家界三天文化美食之旅:奇峰异石与土家风情的完美邂逅
跟着阿娇/悦悦玩转张家界:三日游完美攻略!
绍兴迎恩门历史文化街区:千年水街展新颜
兰亭:绍兴最美打卡地,你去过吗?
加拿大西洋参VS美国花旗参:一文掌握真伪鉴别要点
文登西洋参:冬季养生的“黄金之选”
金蝉脱壳:密室逃脱高手攻略大揭秘!
厦门双层观光巴士:浪漫环岛游
汉中历史博物馆:探秘汉文化的发源地
一针见效的针灸穴位——止咳三穴