吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 398|回复: 8
收起左侧

[经验求助] python比对大型数据excel,怎么办?

[复制链接]
wangwei0511 发表于 2024-7-3 15:06
30吾爱币
本帖最后由 wangwei0511 于 2024-7-3 15:09 编辑

1.我有一个表A(10万行左右)
2.我有四个表BCDE,每个一百万行左右(字段相同,数据唯一)
3.用A表的A列的数据 去匹配表BCDE的H行数据,如果匹配到,就把该行数据写入的A表对应的行的后面。
4.我用传统的方法,写的 运行太慢了,有没有好的方法,AI生成的回答,就不用回答了,我也会用ai。

最佳答案

查看完整内容

数据量大就不要用excel,用数据库,个人感觉py的速度还不如vba!你可以了解一下SQL!

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

wjbg2022 发表于 2024-7-3 15:06
数据量大就不要用excel,用数据库,个人感觉py的速度还不如vba!你可以了解一下SQL!
Batcher 发表于 2024-7-3 15:41
这么大的数据量,不管用Excel还是Access,效率估计都不高。
干脆下决心转成其他关系型数据库。
lisongmei 发表于 2024-7-3 15:41
可以试一下python的pandas库的merge方法。由于没有处理过大量数据,不知快慢。你可以试下
BoyInTheSun 发表于 2024-7-3 15:44
把你需要比对的数据存为set或者dict,不要用list,因为前者的实现是哈希表,时间复杂度O(1),list时间复杂度O(n)
echo2012 发表于 2024-7-3 19:45
1. 读取bcde文件中的数据,然后生成md5值,将这些md5值放入dict1中,key就是md5值,value是内容
2. 循环遍历a文件,按行生成md5,判断是否在dict中,如果存在,就将a放入新的dict2中,key是md5值,value是合并后的内容
3. 最后将dict2的values写入新文件即可;

前提是你的value不能很大,如果value很大,那么dict1中的value就只能存放文件名称,行数;在步骤3中再去做聚合;因为文件a中只有10w,处理起来应该很快
1006706246 发表于 2024-7-3 21:50
excel的VLOOKUP公式还好吧,你的表是不是太大了Access也行
hjboy11 发表于 2024-7-3 22:07
这些表内容到底有多大呢,能全部读入内存吗?是算法复杂度的问题还是读写虚拟内存造成的慢呢?
 楼主| wangwei0511 发表于 2024-7-4 15:40
wjbg2022 发表于 2024-7-3 15:38
数据量大就不要用excel,用数据库,个人感觉py的速度还不如vba!你可以了解一下SQL!

我自己 python的方式解决了,所以采纳第一位的吧
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-13 12:33

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表