ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

别再用 Pandas 慢吞吞了! 这 4 个 Python 库让你的数据处理快到飞起!

别再用 Pandas 慢吞吞了! 这 4 个 Python 库让你的数据处理快到飞起! 你是否也曾经是那种坐在电脑前, 然后看着进度条它纹丝不动, 甚至就直接那么等着直到内存都溢出了OOM?在二零二六年的时候, 如果你只是单纯地利用工具来处理数量达到一千万级别的大规模数据, 那么这种行为实际上就相当于是驾驶拖拉机上高速公路去行驶。今天, 博主打算将自己一直珍藏并且很少示人的四大被誉为具有“神级”作用的数据处理相关库软件, 拿出来跟大家一起分享出来进行展示说明。这话说起来一点都没有夸张的成分, 一旦你把这些技巧学会了, 原本需要花费一个小时才能跑完的脚本, 现在可能仅仅只相当于喝一口咖啡所需要的那一点点时间。1.如果把它看作是数据处理界里的老大哥, 那么另一个家伙就是带着闪电标记的顶级刺客。这是用 Rust 编程语言编写出来的软件, 它天然具备支持多线程并行计算的能力, 并且彻底摆脱了全局解释器锁这种问题的束缚。这里为大家带来相应的代码演示。在处理那个包含有一千万行的这种CSV文件格式的时候, 所花费的时间通常要比另外那种方法要快上十到二十倍左右。import polars as pl# ️ 惊人的读取和过滤速度df (pl.scan_csv(huge_data.csv) # 使用 Lazy 模式不立即加载.filter(pl.col(age) 25).group_by(city).agg(pl.col(salary).mean()).collect() # 最后一刻才开始计算优化查询计划)print(df)2. 数据分析中的“瑞士军刀”很多人都在问, 我可不想去学习那些复杂的 API, 能不能直接利用 SQL 来对文件内容进行查询, 这款产品正是为了回答这个问题而诞生的。它属于一种嵌入式的分析型数据库OLAP, 在使用层面上能像简单操作一样容易, 不过在性能方面却能够达到顶级数据仓库的级别标准。【代码演示】我们直接在那个特定的地方, 针对那个文件去执行 SQL 查询操作的话, 那么连像读取文件这么一类的步骤都可以被省略掉了。import duckdb# 直接在 Parquet 文件上运行 SQL无需加载进内存res duckdb.query(SELECT category, SUM(sales)FROM sales_data.parquetWHERE date 2024-01-01GROUP BY category).to_df() # 瞬间转回 Pandas DataFrameprint(res)3. 如果在单机上面运行的算力已经不够用了, 那么就可以去使用横着的方向进行扩展操作。当你的数据量之大, 大到了连单机内存都再也容纳不下的时候, dask 就成了你那救命的稻草子。它能够将复杂的计算任务拆分成无数的极小的任务件儿, 再把这些小任务均匀地分发到各个 CPU 的核心的上面去, 又或者是再进一步, 把这些小任务发到由好多台机器共同组成的那个计算集群上去面去面对工作。【代码演示】语法结构几乎与那个对象是完全相同的, 不过需要特别说明的是, 它的运行或者实现方式是并行进行的:import dask.dataframe as dd# 像用 Pandas 一样但它背后是分块处理的df dd.read_csv(monster_data_*.csv)result df.groupby(user_id).amount.sum().compute() # compute 才会触发计算4. modin要是有人开口问博主, 说自己挺懒惰的, 坚决不太愿意动手去修改手头那些代码, 并且想要寻求一种能够直接让系统运行速度瞬间得到大幅提升的自动化处理办法的话, 那你不妨就这样回应他。有一个办法, 那个办法就是modin。【代码演示】实际上只需要改动一下引入的那一个代码行,就可以了。# import pandas as pd -- 删掉这一行import modin.pandas as pd # -- 换成这一行瞬间开启全核模式df pd.read_csv(big_data.csv)# 后续所有 df 操作都会自动并行化博主做出了这样的总结: 如果你面临选择, 请问自己应该选哪一个呢? 如果你追求极致速度, 同时还想要获得现代化体验, 那么你应该选这个选项, 这可是博主最为推荐的选项, 也是二零二六年应当必学的技术。如果你是sql的骨灰级爱好者, 那么你应当选择相应的技术方案, 其查询性能表现得非常强大。如果你的数据规模已经扩张到硬盘容器难以容纳的程度, 那么你可以选用dask来进行分布式处理, 以此应对。如果你不希望更改代码逻辑, 只希望程序运行速度变快, 那么modin是你的好选择。【互动环节】当务之急是问你个事儿, 你现在处理数据这个工作, 还在用常规的那套方法吗。有没有哪个地方让你觉得特别好用, 像是发现了什么很厉害的新工具一样。这种事儿你都可以去评论区说说, 大家一起聊聊天。
返回列表