注册 登录
编程论坛 Python论坛

通过dbfread获取的接近2g的数据如何读入pandas

phiplato 发布于 2020-04-27 18:54, 2464 次点击
公司以前都是用vfp倒数据的,好多表格数据都是上g的bin文件,用python解析这些源数据一则容易出错,主要是以前编码格式混乱,二则效率慢,所以还是用vfp导入bin文件,生成dbf表格,然后再用python读dbf表,想用pandas处理读到的数据,一直显示MemoryError内存溢出,有什么办法可以快速导入pandas
5 回复
#2
wp2319572020-04-28 08:34
READ(SIZE) 每次读入固定长度的数据
#3
phiplato2020-04-28 10:20
回复 2楼 wp231957
我首先获取dbf表中数据
table=DBF("XXXXXX",encoding="gbk",char_decode_errors="ignore")
然后用pandas创建dataframe导入table
df=pd. DataFrame(data=table)
运行后一直显示memory error
大神有什么好的办法,能快速导入pandas
#4
phiplato2020-04-28 10:28
回复 2楼 wp231957
最原始的文件都是. bin的二进制大文件,2个G左右,我用vfp读取的,能不能直接用python解析,编码混乱只能用二进制先读后写入txt文件,耗时多,而且还要再次用pandas解析txt,又要耗时很长时间,有没有快速有效的方案,求大神指教。
#5
wp2319572020-04-28 10:57
以下是引用phiplato在2020-4-28 10:28:13的发言:

最原始的文件都是. bin的二进制大文件,2个G左右,我用vfp读取的,能不能直接用python解析,编码混乱只能用二进制先读后写入txt文件,耗时多,而且还要再次用pandas解析txt,又要耗时很长时间,有没有快速有效的方案,求大神指教。

要转变观念,不要幻想一次就读入所有数据至内存
而是,读入一部分数据,处理一部分数据,再继续读入下一部分数据,再处理下一部分数据。。。。。。
#6
phiplato2020-06-03 21:12
后来想到办法了,用vfp导入成自由表,再用pyodbc对自由表crud操作,效率也就上去了,当然也可以用vfp直接进行crud,再用pandas清洗数据。
1