Mij冰 2021-07-16 13:01 采纳率: 33.3%
浏览 32

Python: 100M的excel文件读不出来

我本地有个129M的excel文件,就一个sheet,里面有90万行数据

pd.read_excel(file1)
pd.read_excel(file1,nrows=1)
pd.read_excel(file2,usecols='A:C',skipfooter=899999)

上述3种方法,无论哪种,读取速度都慢得不行,我不知道要多久,超过5分钟我就停了,有没有什么办法可以快速读取excel数据的

  • 写回答

2条回答 默认 最新

  • qq_23283711 2021-07-16 13:32
    关注

    for i in range(0,9):
    data1['wo_new']=np.where((data1['dis1']>= 200)&(data1.index%9==0),data1['wo_id'],np.where((data1['dis1']<200)&
    (data1.index%9==0),data1['wo_new'],np.where((data1['dis1']>= 200)&(data1.index%9!=0) ,data1['wo_id'], data1['wo_new'])))
    data1['wo_new']=data1['wo_new'].shift(1)

    评论
  • 天元浪子 Python领域优质创作者 2021-07-16 13:59
    关注

    无论是使用pandas的read_excel,还是直接使用xlrd或者openpyxl模块,想要打开一个百万行级别的Excel文件,的确是一件困难的事情。尽管openpyxl模块支持只读模式,可以快速打开文件,但是想要一次性读取全部数据,仍然需要花费很长时间;pandas干脆不支持只读模式,连打开文件都很困难。详情请在CSDN搜索《使用Python如何快速打开一个百万行级别的超大Excel文件?》

    那么,就没有办法快速处理超大的excel文件吗?有一个救急的办法,推荐给题主:用Excel打开文件,另存为csv文件。对于超大的csv文件,无论那种工具,都可以快速读取全部数据。

    评论
    Mij冰 2021-07-17 02:29

    这个问题的初衷是,想对大文件进行简单的数据统计,但在excel文件这里卡在IO这块了。
    老师,如果用win32com模块,分批读取100万行数据,每次读取10万,这样可行吗?
    我之前用win32com读取WorkSheet.UsedRange.Values(),3万行大概需要0.4s左右

    回复
编辑
预览

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部