Press "Enter" to skip to content

Pandas的扩展指南

Pandas的扩展指南 四海 第1张

编辑注:Doris Lee将于今年10月30日至11月2日参加ODSC West。请务必参加她的演讲“通过改变一行代码来扩展数据科学工作流程”!

pandas是当今最受欢迎的数据科学库之一。根据最近的StackOverflow调查,四分之一的开发者使用它。几乎所有的入门数据科学课程和训练营都教授这个事实上的数据科学库。

pandas在小数据集上的快速原型设计非常出色,但在处理大数据集时往往会出现问题。

为什么Pandas不等于规模 🤦

这源于pandas的一些基本设计决策。Pandas是一种内存中的数据结构,这意味着您需要能够将正在处理的数据装入内存中。结果是,即使是中等大小的数据集也很容易遇到内存不足的错误。

介绍Modin:通过改变一行代码来扩展pandas

为了解决这些问题,我们开发了Modin——一种可扩展的pandas替代方案。Modin使从业人员能够在大规模数据上使用pandas,而无需更改任何代码。Modin利用了我们在数据框架方面的前沿学术研究——数据框架是pandas的基础,将数据库和分布式系统的优势带到数据框架中。要使用Modin,您只需要将导入语句替换为以下内容:

#import pandas as pd
import modin.pandas as pd
df = pd.read_csv("bigdata.csv")

一旦您更改了导入语句,您就可以像使用pandas一样使用Modin了!您可以在笔记本电脑上轻松获得4倍的加速,而无需更改任何pandas代码!

在您的数据仓库上大规模运行pandas 🚀

大多数企业数据团队将数据存储在数据库或数据仓库中,如Snowflake、BigQuery或DuckDB。当您尝试在pandas中处理这些数据时,这将成为一个问题,因为您必须将数据集拉入计算机的内存中,这可能会很慢、昂贵,并导致严重的内存不足问题。

Ponder通过将您的pandas代码转换为数据仓库可以理解的SQL来解决这个问题。效果是您可以使用您喜爱的pandas API,但您的数据流水线在当今最经过考验和高度优化的数据基础设施之一——数据库中运行。

以下是开始使用的简单方法:

import modin.pandas as pd 

import ponder
ponder.init()

然后我们建立一个数据库连接。Ponder目前支持Snowflake、BigQuery和DuckDB:

# 使用Snowflake的Python连接器
import snowflake.connector
db_con = snowflake.connector.connect(user=**, password=**, account=**, role=**, database=**, schema=**, warehouse=**)

使用Ponder,read_sql只需在数据仓库中建立与表的连接。数据保留在数据仓库中,并且您运行的任何后续pandas命令都将作为SQL查询在数据仓库中执行。

df = pd.read_sql("DB_TABLE",db_con) # 注意:数据不会读入内存!

# 在Snowflake中运行操作!
df.describe() # 计算摘要统计

通过直接在数据库中运行所有操作,您继承了数据仓库的可扩展性。使用Ponder,您可以在超过一兆字节的数据上运行pandas。我们已经证明,这可以节省超过2小时的开发人员时间,当使用Snowflake和BigQuery处理1.5亿行数据时。

您可以通过在此处注册开始在数据仓库中运行Python数据工作流程!请查看我们的入门指南,了解如何开始。

关于作者:

Pandas的扩展指南 四海 第2张

Doris Lee是Ponder的首席执行官和联合创始人。Doris于2021年获得了加州大学伯克利分校RISE实验室和信息学院的博士学位,在那里她开发了帮助数据科学家探索和理解数据的工具。她是2023年《福布斯》企业技术30岁以下的获奖者。

Leave a Reply

Your email address will not be published. Required fields are marked *