鱼C论坛

 找回密码
 立即注册
查看: 2203|回复: 5

[已解决]想使用pandas.read_excel读取一个1.02G左右的xlsx文件,物理内存满了都打不开

[复制链接]
发表于 2020-10-8 17:19:46 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本人新手一枚,学习python主要为了做一些比较大的数据的处理,现在想读取一个1.02G左右大小的Excel文件(xlsx格式的),内有96个sheet,代码如下:

import pandas as pd
t = pd.read_excel('path')
print(t)


电脑有内存8G,        运行代码后内存占用会不断增加,然后维持在5000M左右(内存使用率95%左右),一会减少个几百M,然后又继续增加。等了半个小时左右都读不出来。

用 openpyxl 读也是这样子

import openpyxl
t = openpyxl.load_workbook('path')

在这里向各位大佬请求帮助,先谢谢各位大佬了
最佳答案
2020-10-8 17:26:15
没见过这么大的文件。。。。。。。你用office能打开么。。。。。。这么多数据怎么不用数据库存储?

可以尝试分页分段读取,,,,,,不要一次全部读

有个参数:
skiprows :类列表
开始时跳过的行(0索引)
skip_footer : 整型, 默认为 0
结束时的行(0-索引)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-10-8 17:26:15 | 显示全部楼层    本楼为最佳答案   
没见过这么大的文件。。。。。。。你用office能打开么。。。。。。这么多数据怎么不用数据库存储?

可以尝试分页分段读取,,,,,,不要一次全部读

有个参数:
skiprows :类列表
开始时跳过的行(0索引)
skip_footer : 整型, 默认为 0
结束时的行(0-索引)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-8 22:45:07 | 显示全部楼层
用office能打开 另存为csv
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-10-9 02:25:54 | 显示全部楼层
疾风怪盗 发表于 2020-10-8 17:26
没见过这么大的文件。。。。。。。你用office能打开么。。。。。。这么多数据怎么不用数据库存储?

可以 ...

是一个软件导出来的,就是这个格式的,木的办法。。。
office的话看电脑配置吧,有时候打得开。
刚才又试了一次,一直等的话倒是可以读取,就是内存用得有点吓人,一直在90-95%这样波动,有种满了又漏了的感觉。但是读取完之后实际上并不占用这么多内存,不知道是不是python读取过程中会多使用一些内存,但是删除得不及时。
还有你说的这个skiprows、skip_footer、nrows的参数我也试了一下,不知道为什么,即是我只让他读取很少的几行,读取的时间也跟读取整个文件差不多(结果print出来确实只有我让他读的几行),有种读完之后再切片给我的感觉。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-10-9 02:27:12 | 显示全部楼层
kogawananari 发表于 2020-10-8 22:45
用office能打开 另存为csv

就是有些电脑会打不开,所以想用python处理一下变成小点的文件
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-9 13:54:28 | 显示全部楼层
excel好像只能查看104万行数据。。。。你这怕是几千万行。可以一列一列的读取处理吧,不用一次性全部读取。
address=pd.read_csv("C:/..../文件名",usecols=[2])
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-18 09:57

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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