当前位置: 首页 > article >正文

「数据科学」转换数据,数据存储空间和类型转换

在数据科学过程中,我们在分析和处理数据的时候,经常会遇到各式各样,大大小小的数据集。在国家数字中国,数字建设大的战略背景下,我们的数据量越来越大,数据集,也从以前的小数据集,摇身一变,成为目前主流的大数据集。

对于小数据集来说,在处理和分析数据的时候,我们并不需要考虑数据集占用的内存空间。但是对于大数据集来说,我们要想让数据的时效性更高一些的话,就需要考虑数据集中,每个列代表的变量的数据类型。

合适的数据类型,可以节省我们的数据在内存和硬盘中,持久化的存储空间,减少我们的硬件投入成本。也可以加快我们的处理和分析的进程,特别是在设计算法、数据分组和聚合,这样大规模数据操作的时候,数据类型往往对处理的时间,影响很大。

查看数据类型和占用空间情况

在Python编程语言中,Pandas库有着很强大的数据处理和分析能力,包括数据类型和占用内存的属性、方法和函数。

我们先导入Pandas库,设置显示的行和列的数目,然后导入所需数据集。

然后,通过dtypes属性,查看数据集中,每一列的数据类型。

可以看到,retail_data数据集的每一列的数据类型情况,如上图所示。

我们再来查看,每一列的数据类型,占用内存的精确统计信息。

我们通过memory_usage方法,获得包括索引列在内的,所有列的精确占用内存数据。

这里我们统计了retail_data中,每一列数据所占的存储空间(字节数),其中的deep=True参数代表是否计算引用的对象的内存使用情况。

此外,也可以将其转换为以兆字节方式显示,如下图所示。

这里,显示的结果是以MB为单位,表示173MB。也就是说,retail_data数据集,导入到我们的Python语言环境中,存储在我们的内存上,占用的内存空间是173MB。

数据转换(调整数据类型)

在完成对数据集的数据类型查看,以及数据集和数据列在内存中占用空间的信息统计数据之后。我们就可以调整数据集中,各个列的数据类型了。

我们来看国家列(Country)的数据类型情况。

使用以上代码,可以统计出,数据集中,Country列,总共有541909行国家数据。去除重复值后,总共有38个国家数据。也就是说,这541909行国家数据中,分别只有38个国家。

我们的Country列,数据类型为object。像这样国家的数据类型,我们可以设置为category类型。

可以看出,我们把Country列,从object类型,设置为category类型之后,内存占用空间,从之前的33802250字节,减少到545154字节。

Country的取值一共只有38个国家,经过转换后存储空间明显减少,只有原来存储空间的1.6%。

类似地,还可以对CustomerID列进行数据类型转换,目前CustomerID是浮点数类型,而实际上该数据应该是整数。

这里,我们直接进行转换的话,会报错。这是因为,在CustomerID列,有缺失值的存在。我们需要先填补缺失值。

我们先用0填补缺失值,在进行数据类型转换,就正常了。缺失值的处理,我们会在会面的文章中,详细进行讲解。

我们再来看看,时间类型的列,该如何转换。这里是InvoiceDate列。

时间数据类型的转换,需要借助to_datetime函数来实现。注意上面代码中,单个列,或者是单个变量的数据类型查看方式。

以上就是本篇文章的全部内容。


http://www.kler.cn/news/310343.html

相关文章:

  • spark学习笔记
  • 基于JAVA的居家办公OA系统
  • Java中的数据脱敏与隐私保护:实现GDPR与隐私安全的最佳实践
  • c#的委托、事件
  • Red Hat 和 Debian Linux 对比
  • 异常(Exception)
  • 24年蓝桥杯及攻防世界赛题-MISC-2
  • LeetCode41. 缺失的第一个正数(2024秋季每日一题 20)
  • OpenHarmony(鸿蒙南向开发)——标准系统方案之扬帆移植案例
  • Qt安卓开发连接手机调试(红米K60为例)
  • 宠物定位技术升级,蓝牙定位让爱宠随时在线
  • 《机器学习by周志华》学习笔记-神经网络-02感知机与多层网络
  • SQL 多表联查
  • DAY60Bellman_ford 算法
  • MatchRFG:引领MemeCoin潮流,探索无限增长潜力
  • 养殖场中的分布式光伏发电
  • python画图|在3D图上画2D直方图(作图平面移动)
  • 828华为云征文|华为Flexus云服务器打造《我的世界》游戏服务器
  • maven pom文件中的变量定义
  • MacOS Safari浏览器按ESC就退出全屏模式的去除办法
  • 机器狗与无人机空地协调技术分析
  • 如何快速解决程序中的BUG
  • LeetCode 每日一题 求出最多标记下标
  • Kubernetes从零到精通(12-Ingress、Gateway API)
  • camtasia2024绿色免费安装包win+mac下载含2024最新激活密钥
  • 662. 二叉树最大宽度 BFS 力扣
  • 层次聚类(Hierarchical Cluster)—无监督学习方法、非概率模型、判别模型、线性模型、非参数化模型、批量学习
  • 【原创 架构设计】多级缓存的应用、常见问题与解决方式
  • 【MATLAB源码-第170期】基于matlab的BP神经网络股票价格预测GUI界面附带详细文档说明。
  • svg与css关联