请问有 1000W+行的数据(excel 表格),如何合并处理?

2024-01-19 10:55:03 +08:00
 Lynnnn

请教下 V 友,我请 IT 后台帮忙拉出大概 1300W 行左右的数据,分了 20 几个 excel 表给给我,1 个文件约 60-70W 行。 需求是想从这些数据里面提取需要是数据,然后做一些透视汇总什么的。

之前想的处理逻辑是:(1)先 pandas 合并所有表格(2)数据处理后导出。

碰到的问题是:pandas 处理不了这么大量是数据,多个文件合并卡死了。经过网上搜索一翻,装了 modin ,目前试验下来 3,4 个文件一合并不会报错,但是再多了也不行。

想请问 V 友还有没有更合适的工具?最好也是支持 pandas 语法的。

——————

P.S.我没有连后台数据库的权限(给了也不会,不懂数据库),也不方便请 IT 做预处理再导给我。 是不是只能考虑单个文件处理,然后再逐一合并结果了?但是有一些处理逻辑是需要几张汇总起来后才能写判断的。

3564 次点击
所在节点    Python
35 条回复
sunmker
2024-01-19 14:26:08 +08:00
让 it 导出 csv 的数据,1300w 行,再用 pandas 导入处理
Battle
2024-01-19 14:46:41 +08:00
grep sed awk
ohayoo
2024-01-19 14:46:44 +08:00
pandas 处理应该是没问题的,我曾经甚至用 pandas 处理过 nginx 日志分析,日志以亿条为单位都没问题,用 chunksize ,分段读取,避免内存吃不消
deweixu
2024-01-19 15:16:24 +08:00
导出 csv ,cat awk sed grep ,,,哈哈哈哈哈
ntedshen
2024-01-19 15:30:01 +08:00
xlsx 这玩意感觉三方读取普遍有问题,数值还行主要是那个 sharedStrings.xml 的字典,之前用 java 导出一份两百多万行的用户数据的时候用了 70g 内存。。。
要么转 csv 或者 json 处理要么给个巨大内存的机器让他自己龟爬。。。
djangovcps
2024-01-19 15:30:37 +08:00
报什么错? OOM 内存溢出? 自己写分块处理逻辑吧,不行就存 mysql 里;
iv8d
2024-01-19 16:11:22 +08:00
导入数据库,处理完了再导出为 excel
ktyang
2024-01-19 16:13:16 +08:00
换个格式。。。
Lynnnn
2024-01-19 18:35:27 +08:00
谢谢各位回复,源数据我先转成 csv ,准备先试试下面 3 种方案:
(1)导入数据库 mysql/sqlite
(2)换 polars
(3)换 PySpark
(4)控制内存

合并成 1 个文件只在 python 数据处理过程中,会要在 jupyter 里面预览一下效果,不导出。等全部处理完导出的只是一个比较小的文件。

应该是上面几楼说的内存的问题,普通办公人员电脑配置不太行,但用 PowerBI 更卡...
不过数据库和内存控制都没搞过,我先研究一下再反馈。

再次谢谢!
akira
2024-01-19 20:09:03 +08:00
excel 不支持 1000W 行的数据。别往这个方向浪费精力。 直接代码处理吧
troywinter
2024-01-19 23:50:36 +08:00
z1829909
2024-01-20 03:43:19 +08:00
把 excel 都读取一遍, 写入到自己电脑搭建的数据库, 然后直接 sql 处理. 如果不会的话可以学学, 成本不算太高
aec4d
2024-01-20 09:35:17 +08:00
duckdb or clickhouse
i690531336
2024-02-26 09:58:19 +08:00
放数据库操作就比较方便
vincentqiao
317 天前
最近也碰到这个问题,发现不管是 pandas 还是 polars ,读取大型.xlsx 文件都很吃力。
最好的解决办法还是 csv 。pandas 或者 polars 都很快

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1009926

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX