网易首页 > 网易号 > 正文 申请入驻

用Python处理10万行数据只需3秒,我靠这个在周会上好好露了把脸

0
分享至

上周四周会,我照例汇报数据看板。运营总监问了一句“这个月北京地区用户行为轨迹跑完要多久”,我说“三秒钟”。他愣了一下,问我是不是吹牛。我把笔记本转过去给他看,屏幕上一个700行的脚本刚刚跑完,处理了109,872行原始数据,耗时2.87秒。周围几个人凑过来看,财务组的老王直接说“你早说啊,我们那套报表天天跑半小时”。

其实之前我也用pandas逐行遍历,十万行数据要跑将近四分钟。后来发现问题的关键不在数据量,在写法。我换了个思路,把循环改成向量化操作。举个例子,要筛选出某个时间范围内的记录,用 df[(df['time'] > start) & (df['time'] < end)] 一次搞定。以前我是写for循环,再往列表里append,那当然慢。

核心就一句话:能用DataFrame方法就别用for循环。 我处理那批用户数据时有个步骤要计算每笔订单的金额占比。以前做法是遍历每一行,拿每个金额除以总和。换成 df['ratio'] = df['amount'] / df['amount'].sum ,这一句就能替代几十行循环代码。速度差距不是一点半点,十万行数据下是毫秒级对秒级的区别。

另一个坑是频繁读写硬盘。我接手的数据工程师留下的脚本,每处理完一个步骤就 to_csv 一次。硬盘读写是内存操作的几百倍速度差距,能不慢吗。 把所有中间结果放在内存里,最后一次性保存到硬盘。 我调整之后,原来跑六分钟的任务压缩到四十秒。

还有个技巧可能你们也知道,就是数据类型优化。pandas读入csv时默认会把整数列当成int64,字符串列当成object。实际上很多字段根本用不了这么高的精度。我试过把内存占用量从1.2G砍到380M,数据读取速度快了将近一倍。用 pd.to_numericastype 调整类型,代码改动不超过十行。

说回那次周会。我演示完脚本后,运营总监当场让我把这个脚本共享到组里。后来他们用这个改写的 process_batch.py 替换了原来基于excel宏的旧流程。现在每天上午十点数据更新后,整个部门的看板能在十二点前自动刷新完毕。原来要等整个下午。

我其实没用什么高级技术,就是少写循环,善用内建方法。 你们要是手里有大文件处理的任务,先看一眼代码里有没有 for row in df.iterrows 这种写法,有的话果断换成向量操作。再检查下有没有重复的硬盘读写。这两件事做完了,性能至少提升十倍。

那天周会结束后,隔壁组的实习生小刘私下来问我,说他的任务要处理三百万行销售数据,问我有没有建议。我说你先按上面两步改一下,如果还不够快,再用dask或者polars替换pandas。他改完后跟我说,原来跑二十分钟的任务现在不到六秒。他说这是他入职以来第一次在周会上被组长表扬。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
玥儿终于脱掉大白T,条纹衬衫挽起衣袖干净大气,模样纯美真像大S

玥儿终于脱掉大白T,条纹衬衫挽起衣袖干净大气,模样纯美真像大S

潋滟晴方DAY
2026-07-15 22:36:21
黄金突然崩溃!美联储9月加息概率惊人飙升 金价暴跌118美元

黄金突然崩溃!美联储9月加息概率惊人飙升 金价暴跌118美元

新浪财经
2026-07-15 15:11:02
拳王老婆在酒局求大佬!长公主背着老公抓娃娃!

拳王老婆在酒局求大佬!长公主背着老公抓娃娃!

八卦疯叔
2026-07-14 10:52:59
泽连斯基瞒不住了,俄罗斯这一炸,拆穿乌克兰伪装,中方立场坚定

泽连斯基瞒不住了,俄罗斯这一炸,拆穿乌克兰伪装,中方立场坚定

夜里看海
2026-07-13 05:19:00
女子在家煲汤,邻居误以为“尸臭”直接报警, 当事人表示很无奈:这是“臭屁醋”,越吃越上头,民警做完笔录后离开了

女子在家煲汤,邻居误以为“尸臭”直接报警, 当事人表示很无奈:这是“臭屁醋”,越吃越上头,民警做完笔录后离开了

台州交通广播
2026-07-15 22:20:26
彻底撕破脸!曼联名宿怒喷阿根廷三大硬汉:全是纸老虎

彻底撕破脸!曼联名宿怒喷阿根廷三大硬汉:全是纸老虎

澜归序
2026-07-15 07:03:02
中国没有走资本主义道路,却迎来了资本家,背后的原因耐人寻味

中国没有走资本主义道路,却迎来了资本家,背后的原因耐人寻味

财经保探长
2026-06-17 22:06:52
明日申购,中一签能赚2.3万!阿里云承诺认购1.58亿元

明日申购,中一签能赚2.3万!阿里云承诺认购1.58亿元

都市快报橙柿互动
2026-07-15 17:54:10
【人物】虎头蛇尾的奥利塞,搞砸了“最后一道大题”

【人物】虎头蛇尾的奥利塞,搞砸了“最后一道大题”

体坛周报
2026-07-15 18:43:16
建国后粟裕为何仕途不顺?陈赓:没办法,不受欢迎的2种人他都占

建国后粟裕为何仕途不顺?陈赓:没办法,不受欢迎的2种人他都占

南书房
2025-04-12 23:50:03
迪班萨夏联场均25分7板2助2.5断1.5帽,因伤退出剩余比赛

迪班萨夏联场均25分7板2助2.5断1.5帽,因伤退出剩余比赛

林子说事
2026-07-15 12:16:51
75岁王石现身上海健身房,对抗衰老!妻子田朴珺调教他训练普拉提器械,曾引争议

75岁王石现身上海健身房,对抗衰老!妻子田朴珺调教他训练普拉提器械,曾引争议

火山詩话
2026-07-13 07:59:35
逼走中方产业链后,印尼请印度接盘,没想到搬起石头砸自己的脚

逼走中方产业链后,印尼请印度接盘,没想到搬起石头砸自己的脚

麓谷隐士
2026-07-15 13:02:38
内贾德万没想到,自己被捕消息传出第二天,特朗普突然坐镇战情室

内贾德万没想到,自己被捕消息传出第二天,特朗普突然坐镇战情室

听风工厂
2026-07-15 22:21:22
央媒批LV商标争议,上海大秀名单流出,受邀明星集体遭抵制

央媒批LV商标争议,上海大秀名单流出,受邀明星集体遭抵制

阿玲诗话
2026-07-14 08:29:08
“我真想踢他一顿”,父亲公开厌恶1米83儿子:每天食堂要吃一百多!

“我真想踢他一顿”,父亲公开厌恶1米83儿子:每天食堂要吃一百多!

泽泽先生
2026-07-13 18:49:46
华夏幸福重整“卡壳”:226亿“置换带”兜底责任成关键!

华夏幸福重整“卡壳”:226亿“置换带”兜底责任成关键!

野马财经
2026-07-15 17:46:21
世界第2痛失5赛点被单局大逆转!连爆大冷国羽男单首轮1胜3负收官

世界第2痛失5赛点被单局大逆转!连爆大冷国羽男单首轮1胜3负收官

求球不落谛
2026-07-15 13:25:10
DeepSeek分析:10年后最可能贬成“白菜价”的10大资产!请留意

DeepSeek分析:10年后最可能贬成“白菜价”的10大资产!请留意

蜉蝣说
2026-07-13 15:45:18
WTA250雅典站:郑钦文强势逆转进级 本玉真唯成亚洲黑马

WTA250雅典站:郑钦文强势逆转进级 本玉真唯成亚洲黑马

环球体坛啄木鸟
2026-07-14 23:51:55
2026-07-16 00:03:00
侃故事的阿庆
侃故事的阿庆
几分钟看完一部影视剧,诙谐幽默的娓娓道来
644文章数 8987关注度
往期回顾 全部

科技要闻

国行大突破!“Apple智能”已备案

头条要闻

美国要“彻底瓦解”国际刑事法院 日本慌了

头条要闻

美国要“彻底瓦解”国际刑事法院 日本慌了

体育要闻

世界杯两大巨星,加一起22岁

娱乐要闻

大S遗嘱曝光!S家拒不承认

财经要闻

梁文锋身家2400亿登顶全球AI首富

汽车要闻

爱玩会玩 小鹏MONA L03这次来势凶猛

态度原创

游戏
教育
艺术
健康
军事航空

大司马人气重回巅峰,播LOL怀旧服人气突破10万+,老版本情怀拉满!

教育要闻

直通体制内的“冷门专业”,正在被疯抢

艺术要闻

时尚圈集体破防:夏威夷画家用一支笔,干翻了价值百万的摄影棚大片

如何管控血压才能预防中风?

军事要闻

美军称已恢复对伊朗的海上封锁

无障碍浏览 进入关怀版