如何用 Python 在笔记本上分析 100GB 数据?

许多组织都想尽可能多地收集和利用数据,从而改进业务、增加收入
和提升影响力。因此,数据科学家们要面对 50GB,甚至 500GB 数据集的
场景变得越来越普遍。

目前,这些数据集处理起来有点麻烦。就大小而言,它们可以放进你
笔记本电脑的硬盘里,但却无法装入内存。所以,仅仅打开和查看它们就
很困难,更何况进一步探索和分析。
处理这样的数据集时,一般有 3 种策略。
第 1 种是对数据进行子抽样,但它有一个明显缺点:可能因忽略部分
数据而错失关键信息,甚至误解数据表达的含义。
第 2 种是使用分布式计算。虽然在某些情况下这是一种有效的方法,
但是管理和维护集群会带来巨大开销。想象一下,要为一个刚超出内存大
小、大概 30-50GB 的数据集就建立一套集群,对我来说,这似乎有点“用
力过猛”。
第 3 种是租用一个内存大小等同于数据集大小的强大云服务实例,例
如,AWS 提供了 TB 级内存的云服务实例。但这种情况还需要管理云数
据存储空间,并且在每次实例启动时都要等待数据从存储空间传输到实例。
另外还需要应对数据上云的合规性问题,以及忍受在远程机器上工作带来
的不便。更别提成本,虽然开始会比较低,但随着时间推移会快速上涨。
本文向你展示一种全新方法,它更快、更安全,可以更方便、全面地
对几乎任意大小的数据集进行数据科学研究,只要这个数据集能装进你的
笔记本电脑、台式机或者服务器的硬盘里就行。

Vaex

Vaex 是一个开源的 DataFrame 库,对于和你硬盘空间一样大小的表
格数据集,它可以有效进行可视化、探索、分析乃至实践机器学习。
为实现这些功能,Vaex 采用内存映射、高效的核外算法和延迟计算
等概念。所有这些都封装为类 Pandas 的 API,因此,任何人都能快速上手。
10 亿级出租车的数据分析
为阐述这些概念,我们对一个远超出一般笔记本电脑内存大小的数据
集进行简单地探索分析。
这里,我们使用 New York City(NYC) Taxi 数据集,它包含了标志性
的黄色出租车 2009 年到 2015 年间超过十亿次的出租车行程信息。
数据从网站下载,提供 CSV 格式。完整分析可以单独查看这个
Jupyter notebook。

数据科学快乐!
Vaex 官方网站: https://vaex.io/。

你可能感兴趣的:(如何用 Python 在笔记本上分析 100GB 数据?)