全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 数据分析与数据挖掘
1121 0
2020-08-13
Python-Pandas中的数据框存储效率
简介:如今,Python-Pandas对于分析和数据科学的数据管理至关重要。确实,我们现在看到的是Pandas得以扩展以处理越来越大的数据。熊猫是一个可调平台,不支持它自己的数据类型,也不支持数值库Numpy的数据类型。这些一起构成了数据框列选项的相当细致的集合-比R还要多。大多数Pandas程序员没有利用这些可能性,而是接受read_csv函数随附的大量默认值。这些默认值对于10
几周前,当我遇到两个评论者之间关于我正在研究的粒度数据类型的需求/效用的棘手交流时,我正在搜索stackoverflow以查看是否/如何在Pandas中实现16位和8位整数。反对过度使用详细数据类型的“骗子”方面无疑习惯于处理小型数据集,在小型数据集中,16位和32位属性之间的数据帧RAM差异以字节为单位,而不是以兆字节为单位。下载最新的5年PUMS文件时,我只能微笑  来自美国人口普查。csv_hus.zip和csv_pus.zip分别由4个文本文件组成-第一个数据来自美国家庭样本,第二个数据来自美国人口。这两个文件都具有数百万个记录,数百个列大小范围。2字节和4字节的列之间几乎有1600万行的区别是30 MB RAM!
我强烈建议数据书呆子查看PUMS数据。除了可用于评估管理挑战之外,该数据还为美国家庭和人口提供了令人着迷的外观。实际上,这与像布鲁金斯这样的智囊团的研究人员使用的数据相同。顺便提一句,PUMA分析了“将每个州划分为连续的地理单元(每个区域不少于100
我对此博客的自我指导的任务是,将包含人口数据的4个文件加载到Pandas数据框中,然后探索用于优化存储的选项。出发点是天真地加载了Pandas数据框,然后在相关列上应用了“向下转换”功能以减少存储量。然后,我概述了一个概念证明,用于根据记录的随机抽样确定向下转换选项。我的发现:在这种情况下,默认负载和向下负载之间的差异非常明显:33 GB和10 GB!
要点是,在将大数据文件加载到Pandas时,必须谨慎对待列类型/大小。在后续文章中,我将讨论Pandas中字符/类别变量的处理以及它们与数据框大小/性能的关系。
使用的技术是具有128 GB RAM的Wintel 10,JupyterLab 1.2.4和Python 3.7.5,以及基础库Pandas 0.25.3和Numpy 1.16.4。Feather 0.4.0处理数据帧的高效磁盘存储。
请在此处查看博客的其余部分  。

关注 CDA人工智能学院 ,回复“录播”获取更多人工智能精选直播视频!


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群