CDA数据分析师 出品

作者:曹鑫

编辑:JYD

我真遇到了上百万行的 Excel

年底到了,我想把公司历年的销售明细和指标等业务数据放在一起透视做分析,觉得这样很方便,但是无奈一张表就50多万行,好几年的数据加在一起有两三百万行,受 excel行数限制,我只能将数据按年分开,一年一张表,每张表里的表头项目都是一样的。

业务发展越来越大,数据的规模会越来越大,在初期的时候,还觉得Excel 够用了,但是当 Excel 规模的数据量不断增加,我们开始发现打开 Excel 越来越慢,操作一下 Excel 要等很久。

直接双击打开?

最简单的方法,当然是双击打开,当你双击下去,看着鼠标变成旋转的模式,你就陷入了无尽的等待,听着电脑的机声音越来越大,最后还没打开,电脑和我就都崩溃了。这完全没法开展下一步的数据分析⼯作了,怎么办?

Access

首先想到的是个比较冷门,但又没那么冷门,好像学过,但又好像没用过,好像很难,但其实也没那么难的软件:Access。

Access 导入 Excel 数据的操作很直观,打开 Access,点击「外部数据」-「新数据源」-「从文件」-「Excel」,按照指引一步步操作下去即可,而且 Access 也支持新表追加到旧表的后面,可以把几十万的表一张张拼接到一起。但估计你现在电脑里还有没有Access还不一定。

PowerBI

同样是微软出品的软件,现在更流行,你还可以选择 PowerBI 的一系列组合软件。

从Excel2010开始,微软推出了一个叫Power Query的插件,可以弥补Excel的不足,处理数据的能力边界大大提升,Excel2013也同样可以使用,现在还在用Excel2010和 2013的同学可以从微软官网下载powerquery插件使用。

而到了Excel2016,微软直接把PQ的功能嵌入进来,放在数据选项卡下。

首先我们使用Excel2016打开一个空白的Excel工作簿文件,依次点击“数据/从文件/从工作簿”,在导航器界面,左侧列出了所有工作表,我们这个不是一个个去勾选加载,如果表很多,那么勾起来太麻烦,直接选任一个表,点击“转换数据”按钮,进入Power Query管理界面即可。

都说到这份儿上了,Python 党得出来说两句了:上百万行的数据还放在excel里面?!别说处理了,你连打开有时候可能都是问题。这种情况下最根本的办法了就是存入数据库然后再处理,即使再不济也可以放入access。可能有人会说可以是使用 power query或者power pivot来处理,但是,实际情况是这么大的数据量,PowerBI也很吃力。

那用 Python 试试?

Python 读取百万行的 Excel 大概要花费5分钟(以我以前的电脑配置 16GB 内存),如果你的配置更好,当然会更快,代码也很简单,如下图:

1.导入 pandas 包, import pandas as pd ,是最常用的数据处理包。

2.使入 pd.read_excel() 读取 test4.xlsx 文件,读取 Excel 有直接写好的方法。

3.使入 df.head() 查看一下前五行。

最终花了 5 分钟,才把这份 50 万行 50 列的数据打开了。虽然比起双击打开是要快一点的(至少打开了),但是还不满足,有没有更快的方式?这时候,就要开始跳出Excel,开始思考其他一些更高效的数据格式。

更高效的数据格式

CSV 格式

CSV文件,是一种以纯文本形式存储表格数据的简单文件格式。在CSV中,每列数据由特殊分隔符分割(如逗号,分号或制表符),用 Python 来读取都非常方便,只要格式规整,用 Pandas 里面的 read_csv 可以快速读取以上格式文件,在我的电脑上,同样是 50 万行 50 列的数据,原来打开要花 5 分钟,现在只花了 5 秒钟,速度提升了60倍:

Pickle 格式

当然 Python 里面还引入了其他的格式,你可能平时接触的不多,但是效果绝对让你惊喜。比如将数据存储为 pkl 的格式,“pickling” 是将 Python 对象及其所拥有的层次结构转化为一个字节流的过程。

我们来看看读取的速度,打开速度一下子提升到500毫秒。

从5分钟,到5秒钟,到500毫秒,没有最快只有更快。

随着业务扩展,数据量一定会越来越大。你也会面临着数据量越来越大,处理的效率越来越慢的问题。我们思考问题的路径就可以从软件 Access、PowerBI,到编程语言 Python,再到文件格式 Excel、CSV、Pickle,一路解决下去。

遇到100万行的 Excel,还没打开,电脑和我都崩溃了,该怎么办?相关推荐

  1. 写word文档时计算机的工作原理,写word文档时还没保存电脑就死机如何恢复

    电脑已经成为人类生活中不可缺少的一部分,人们利用电脑可以轻松的完成以前需要大量劳动力才能完成的工作,但在人们在使用电脑中也会遇到很多的麻烦,比如死机,这些原因烦恼着每一个电脑用户,这不,最近就有小伙伴 ...

  2. 加密指数有什么好买的?想象空间可能还没打开……

    本文作者:Messari分析师Roberto Talamas 在过去的一年里,加密市场一直在狂欢,并以惊人的速度增长.在疫情的刺激下,这种增长暴露了全球经济运作方式的缺陷,吸引了机构投资领域的关注.加 ...

  3. 好久没打开电脑开不了机 解决方案

    电脑开不了机 症状:按下开机键,键盘灯一闪一闪,风扇随着键盘灯的闪烁而转动 诊断结果:内存条氧化 解决方法:卸下内存条,按开机键键盘灯亮,风扇则正常.使用橡皮擦了擦金手指,遂正常开机.

  4. win10怎么调用计算机,win10如何打开电脑设置?win10打开电脑设置的方法

    随着win10系统不断更新升级,越来越多用户给电脑安装上最新的win10系统,升级后发现win10的操作界面与XP和Win7都有很大区别,想要打开电脑设置都不懂从何下手.针对此问题,小编和大家详细说明 ...

  5. excel如何打开100万行以上的csv文件

    excel如何打开100万行以上的csv文件_自由de单车的博客-CSDN博客_csv超过100万条用什么打开前言正常情况下,2007版本以上的excel打开的csv文件,最多只能显示1048576行 ...

  6. 徐磊(Devops):一名写了十几年代码但还没写够的程序员

    徐磊(Devops 社区领袖) [个人介绍] 徐磊,微软MVP(微软最有价值专家,大中华区域社区技术总监,Devops 社区领袖),从事过网管.技术支持.网络.软件开发等工作,一名写了十几年代码但还没 ...

  7. 支付宝的架构到底有多牛逼!还没看完我就跪了!

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 来源:uee.me/cFgQC 自 2008 年双 11 以来,在 ...

  8. 比Excel还简单,跳槽数据分析岗必会的工具

    老李有个朋友(楼下包子铺认识的,搞销售数据分析的),年前就嚷嚷着要跳槽,让我们给介绍点钱多的工作.结果这都过完年了,今儿个买包子碰见他时,还挂着老公司的工作牌. 我随口问了他一句,这是面试没过?分析技 ...

  9. 利用swagger组件测试excel下载,打开文件乱码。

    最近项目遇到个问题,就是利用swagger下载excel时,得到的文件打开总是乱码,首先怀疑是response的content-type有问题,将application试遍了,"x-msdo ...

最新文章

  1. Nodejs教程14:querystring模块
  2. Android仿QQ界面
  3. 2017 JMP Discovery Summit China圆满落幕
  4. html中通过定位 实现下拉,JS+CSS相对定位实现的下拉菜单
  5. 看了新闻,思科研发中心 没有成都的。。。
  6. .net mysql查询数据库连接_asp.net连接查询SQL数据库并把结果显示在网页上(2种方法)...
  7. 【kafka】已解决 kafka No current assignment for partition
  8. MPlayer 使用手册中文版
  9. HTML5 纯css圆角代码
  10. idea展现目录清晰方式
  11. SQL Server 2016 完全卸载(安装)全教程
  12. 没有 4K 和新处理器,任天堂的新 Switch 为什么还能吸引圈外玩家买单?
  13. 将图像数据jpg,png等存储为npy/npz格式
  14. 推荐几款常用在线代码转换工具
  15. mac nmap 的下载
  16. trunc和round区别
  17. 现货黄金赚吗:黄金实战技巧
  18. 学习lumberjack framework(中文版)
  19. ISCC-2022 部分wp
  20. 一年期早过:Windows 10免费升级漏洞仍然敞开着

热门文章

  1. AdaNet: Adaptive Structural Learning of Artificial Neural Networks
  2. 使用office这么多年,但知道什么是office365吗?
  3. codeforces 702F 可持久化平衡树
  4. Dialog使用时has leaked window...that was originally added here错误
  5. dell电脑java下载_【亲测不管用】【DELL安装系统的坑】亲测UEFI启动模式的电脑安装Win10和Ubuntu双系统(dell笔记本和hp笔记本)...
  6. vmware:end kernel panic not syncing
  7. [附源码]SSM计算机毕业设计政府公用车辆管理系统JAVA
  8. 使用element走马灯 + video-player实现图片和视频混合轮播
  9. 招商头条:北京市集中力量补齐5G产业短板;投资50亿元的格力成都产业园开工
  10. 北京对无人车的热情,华尔街都感受到了-1