再见 CSV,速度提升 倍!.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
再见 CSV,速度提升 150 倍! 好了说了那么久,来引见下为什么要和CSV再见。其实也谈不上彻底再见吧,日常还是要用的,这里再引见一个愈加高效的数据格式。 用Python处理数据时保存和加载文件属于日常操作了,尤其面对大数据量时我们一般都会保存成CSV格式,而不是Excel。一是由于Excel有最大行数1048576的限制,二是文件占用空间更大,保存和加载速度很慢。 虽然用CSV没有行数限制,相对轻松,但是面对大数据量时还是略显拉夸,百万数据量储存加载时也要等好久。。不过很多同学都借此机会抻抻懒腰、摸摸鱼,充分利用时间也不错。 其实,CSV 并不是独一的数据存储格式。今日和大家引见一个速度超快、愈加轻量级的二进制格式保存格式:feather。 Feather是什么? Feather 是一种用于存储数据帧的数据格式。它最后是为了 Python 和 R 之间快速交互而设计的,初衷很简约,就是尽可能高效地完成数据在内存中转换的效率。 现在 Feather 也不只限于 Python 和 R 了,基本每种主流的编程言语中都可以用 Feather 文件。不过,要说明下,它的数据格式并不是为长期存储而设计的,一般的短期存储。 如何在Python中操作Feather? 在 Python 中,可以通过 pandas 或 Feather 两种方式操作。首先需要安装feather-format。 #?pip? pip?install?feather?-format? #?Anaconda? conda?install?-c?conda-forgefeather-format 只需要上面一行安装即可,很简约。 我们通过一个较大的数据集举例,需要 Feather、Numpy 和 pandas 来一起协作。数据集有 5 列和 1000 万行随机数。 import?feather import?numpy?as?np import?pandas?as?pd np.random.seed?=?42 df_size?= df?=?pd.DataFrame({ ????a:?np.random.rand(df_size), ????b:?np.random.rand(df_size), ????c:?np.random.rand(df_size), ????d:?np.random.rand(df_size), ????e:?np.random.rand(df_size) }) df.head() 它的用法和之前csv的操作难度一个水平线,格外简约。 保存 两种方式,一是 DataFrame 直接to_feather 的 Feather 格式: df.to_feather(1M.feather) 二是用 Feather 库执行相同操作的方法: feather.write_dataframe(df,?1M.feather) 加载 加载也是一样的,同样还是两种方式。一是通过pandas加载: df?=?pd.read_feather(1M.feather) 二是用 Feather 加载: df?=feather.read_dataframe(1M.feather) 操作习惯一样,难度完全没有。 和CSV的区分 对比产生美。下面来看下feather和csv的差距有多大。下图显示了上面本地保存 DataFrame 所需的时间: 差距巨大,有木有!原生 Feather(图中的Native Feather)比 CSV 快了将近 150 倍左右。假如使用 pandas 处理 Feather 文件并没有太大关系,但与 CSV 相比,速度的提高是格外显著的。 然后再看下读取不同格式的相同数据集需要多长时间。 同样,差异也很明显。CSV 的读取速度要慢得多。并且CSV占用的磁盘空间也更大。 CSV 文件占用的空间是 Feather 文件占用的空间的两倍多。假如我们每天存储千兆字节的数据,那么选择正确的文件格式至关重要。Feather 在这方面完全碾压了 CSV。 当然,假如追求更多的压缩空间,也可以试试Parquet,也是一个可以替代CSV 的格式。 结语 说了这么多,可能很多同学还是甩出一句话:感激东哥,我选CSV。 这个东西怎样说呢,当你需要它时,它就有用,假如日常没有速度和空间的猛烈需求,还是老狡猾实CSV吧。CSV已经用惯了,转变使用习惯还是挺难的。 原创不易,点赞让我连续坚持。 小伙伴们,快快用实践一下吧!假如在学习过程中,有遇到任何问题,欢迎加我好友,我拉你进Python学习沟通群共同探讨学习。 -----------

文档评论(0)

bob157641554 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档