详细内容或原文请订阅后点击阅览
Pandas 与 Polars:语法、速度和内存的完整比较
需要帮助选择正确的 Python 数据框架库吗?本文对 Pandas 和 Polars 进行了比较,以帮助您做出决定。
来源:KDnuggets简介
如果您一直在 Python 中处理数据,那么您几乎肯定使用过 pandas。十多年来,它一直是数据操作的首选库。但最近,Polars 受到了极大的关注。 Polars 有望比 pandas 更快、更节省内存、更直观。但值得学习吗?到底有什么不同呢?
在本文中,我们将并排比较 pandas 和 Polars。您将看到性能基准,并了解语法差异。最后,您将能够为下一个数据项目做出明智的决定。
您可以在 GitHub 上找到代码。
开始使用
让我们先安装这两个库:
pip 安装 pandas 极坐标
注意:本文使用 pandas 2.2.2 和 Polars 1.31.0。
对于此比较,我们还将使用足够大的数据集来查看实际的性能差异。我们将使用 Faker 生成测试数据:
现在我们准备开始编码了。
通过读取大型 CSV 文件来测量速度
让我们从最常见的操作之一开始:读取 CSV 文件。我们将创建一个包含 100 万行的数据集,以查看实际的性能差异。
首先,让我们生成示例数据:
将 pandas 导入为 pd
从 faker 导入 Faker
随机导入
# 生成一个大的 CSV 文件用于测试假=假冒者()Faker.seed(42)随机种子(42)数据 = {'user_id':范围(1000000),'name': [fake.name() for _ in range(1000000)],'email': [fake.email() for _ in range(1000000)],'年龄': [random.randint(18, 80) for _ in range(1000000)],'工资': [random.randint(30000, 150000) for _ in range(1000000)],'部门': [random.choice(['工程', '销售', '营销', '人力资源', '财务'])对于 _ 在范围内(1000000)]}df_temp = pd.DataFrame(数据)df_temp.to_csv('large_dataset.csv',index=False)print("✓ 生成具有 1M 行的 large_dataset.csv")此代码创建一个包含实际数据的 CSV 文件。现在我们来比较一下阅读速度:读取示例 CSV 时的输出:示例输出:
