作者:  Dario Radečić
翻译:王可汗
校对:张达敏本文约1200字,建议阅读5分钟本文介绍了一种运行速度大大提高的数据格式。

csv会浪费您的时间、磁盘空间和金钱。是时候结束了。

csv并不是唯一的数据存储格式,甚至可能是你最后才考虑使用的格式。如果你不打算手动编辑数据,使用csv是在浪费时间和金钱。

想象一下——你收集了大量的数据并将它们存储在云端。你没有对文件格式做太多的研究,所以选择了csv。你的开销会爆炸!如果不追求更多,一个简单的调整可以减少一半开销。这个调整就是——你已经猜到了——选择一种不同的文件格式。

Feather到底是什么?

简单地说,它是一种用于存储数据帧(DataFrame)的数据格式(想想Pandas)。它围绕一个简单的前提设计——尽可能高效地将数据帧输入和输出内存。它最初是为Python和R之间的快速通信而设计的,但您并不局限于这个用例。

不过Feather并不只能用与Python和R,你可以通过任何一个主流编程语言使用Feather文件。

这种数据格式不是为长期存储而设计的。最初的目的是R和Python程序之间的快速交换,以及一般的短期存储。没有人能阻止您将Feather文件转储到磁盘,并将它们保存多年,但有比Feather更有效的格式。

在Python中,您可以通过Pandas或专用库使用Feather。本文将向您展示如何使用这两种方法。首先您将需要安装feather-format来继续。以下是代码:

# Pip
pip install feather-format# Anaconda
conda install -c conda-forge feather-format

有了这些你就可以开始使用Feather了。打开JupyterLab或任何其他数据科学IDE,下一节将涵盖Feather的基础知识。

如何在Python中使用Feather?

让我们从导入库和创建相对较大的数据集开始。你将用到Feature,Numpy和Pandas。该数据集有一千万*5个随机数:

import feather
import numpy as np
import pandas as pdnp.random.seed=42
df_size = 10_000_000df = 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 ()

数据集大概长这样:

接着把它保存到本地。你可以调用Pandas使用下面的命令来保存DataFrame到Feature格式:

df.to_feather('1M.feather')

下面是如何用Feather库进行同样的操作:

feather.write_dataframe(df, ‘1M.feather’)

差别不大。这两个文件现在都保存在本地。你可以在Pandas或专用库阅读它们。下面是Pandas的语法:

df = pd.read_feather(‘1M.feather')

使用Feather库:

df = feather.read_dataframe('1M.feather')

以上涵盖了你需要知道的东西。下面的部分将介绍与CSV文件格式在文件大小、读取和写入时间上的比较。

CSV vs. Feather -你应该使用哪一个?

如果不需要动态更改数据,答案很简单——用Feather。不过,让我们先做一些测试。

下面的图表显示了把上一节的DataFrame保存到本地所需的时间:

这是一个巨大的差异——原生Feather大约比CSV快150倍。使用Pandas来处理Feather文件并不会有太大的影响,但是与CSV相比,Feather在速度上的提高是显著的。

接下来,让我们比较读取时间——读取相同数据集的不同格式需要多长时间:

CSV又一次被完爆。和Feather相比,CSV的读取速度更慢,占用更多的磁盘空间,但具体是多少呢?

这就是下一个可视化的答案:

正如您所见,CSV文件占用的空间是Feather文件的两倍多。

如果您每天存储几个G的数据, 选择正确的文件格式是至关重要的。Feature在这方面完胜了CSV。如果你需要更多的压缩,你应该尝试Parquet。我发现这是迄今为止最好的格式。

总之,从to_csv()到to_feather(),从read_csv()到read_feather()可以节省大量时间和磁盘空间。考虑一下在下一个项目中试试Feather吧。

原文标题:

Stop Using CSVs for Storage — This File Format Is 150 Times Faster

原文链接:

https://towardsdatascience.com/stop-using-csvs-for-storage-this-file-format-is-150-times-faster-158bd322074e

编辑:王菁

校对:林亦霖

译者简介

王可汗,清华大学机械工程系直博生在读。曾经有着物理专业的知识背景,研究生期间对数据科学产生浓厚兴趣,对机器学习AI充满好奇。期待着在科研道路上,人工智能与机械工程、计算物理碰撞出别样的火花。希望结交朋友分享更多数据科学的故事,用数据科学的思维看待世界。

翻译组招募信息

工作内容:需要一颗细致的心,将选取好的外文文章翻译成流畅的中文。如果你是数据科学/统计学/计算机类的留学生,或在海外从事相关工作,或对自己外语水平有信心的朋友欢迎加入翻译小组。

你能得到:定期的翻译培训提高志愿者的翻译水平,提高对于数据科学前沿的认知,海外的朋友可以和国内技术应用发展保持联系,THU数据派产学研的背景为志愿者带来好的发展机遇。

其他福利:来自于名企的数据科学工作者,北大清华以及海外等名校学生他们都将成为你在翻译小组的伙伴。

点击文末“阅读原文”加入数据派团队~

转载须知

如需转载,请在开篇显著位置注明作者和出处(转自:数据派ID:DatapiTHU),并在文章结尾放置数据派醒目二维码。有原创标识文章,请发送【文章名称-待授权公众号名称及ID】至联系邮箱,申请白名单授权并按要求编辑。

发布后请将链接反馈至联系邮箱(见下方)。未经许可的转载以及改编者,我们将依法追究其法律责任。

点击“阅读原文”拥抱组织

独家 | 别用csv存储了-这种文件格式比csv快150倍(附链接)相关推荐

  1. 独家 | 数据科学家对可复用Python代码的实用管理方法(附链接)

    作者:Matthew Mayo, KDnuggets翻译:殷之涵校对:欧阳锦本文约3000字,建议阅读5分钟本文为大家介绍了四种关于复用Python代码的管理方法,以提高代码的效率及可读性等. 标签: ...

  2. 独家 | Bamboolib:你所见过的最有用的Python库之一(附链接)

    作者:Ismael Araujo 翻译:王可汗 校对:欧阳锦本文约3200字,建议阅读5分钟 本文介绍了Python数据分析的一个利器--Bamboolib,它无需编码技能,能够自动生成pandas代 ...

  3. 独家 | 解析Tansformer模型—理解GPT-3, BERT和T5背后的模型(附链接)

    作者:Dale Markowitz 翻译:王可汗 校对:和中华 本文约3800字,建议阅读5分钟 本文为大家介绍自然语言处理中当下最流行的语言模型--Transformer模型. 标签:自然语言处理 ...

  4. 独家 | 一份数据工程师必备的学习资源,干货满满(附链接)

    作者:PRANAV DAR 翻译:张玲 校对:车前子 本文约6500字,建议阅读15分钟. 本文首先详细介绍了数据工程的职责.与数据科学家之间的差别以及其不同的工作角色,然后重点列出了很多与核心技能相 ...

  5. 独家 | 神经网络的对抗性攻击:快速梯度符号方法的探索(附链接)

    作者:Patrycja Jenkner 翻译:陈之炎 校对:欧阳锦 本文约2300字,建议阅读8分钟 本文将尝试一种非常流行的攻击:快速梯度符号方法,来证明神经网络的安全漏洞. 标签:对抗性攻击,神经 ...

  6. 独家 | 人工神经网络中发现了人类大脑拥有的多模态神经元(附链接)

    作者:Gabriel Goh, Chelsea Voss, Daniela Amodei, Shan Carter, Michael Petrov, Justin Jay Wang, Nick Cam ...

  7. 独家 | 送你12个关于数据科学学习的关键提示(附链接)

    来源:Artinspiring/Dreamstime.com 翻译:国相洁 校对:丁楠雅 本文约3000字,建议阅读6分钟. 本文为你介绍了作为数据科学家需要掌握沟通能力和其它软技能方面知识. 小结: ...

  8. 独家 | 带你认识几种最流行的Python编辑器/IDEs(附链接)

    作者:By Gregory Piatetsky 格雷戈里·皮亚特斯基,KDnuggets. 翻译:赵雪尧 校对:丁楠雅 本文约1200字,建议阅读5+分钟. 我们投票选出了几种最流行的IDEs和编辑器 ...

  9. 独家 | 盘点9个适用所有学科的R数据可视化包(附链接)

    作者:Asha Hill 翻译:王雨桐 校对:蒋雨畅 本文约1900字,建议阅读8分钟. 本文将简要盘点R中常用的9个可视化包,并通过简要介绍包的特点和相关案例来帮助读者深入理解可视化包. 如果最近浏 ...

最新文章

  1. Entity Framwork 学习笔记 (一) 创建 School 数据库
  2. Linux下集群技术应用概述
  3. nodejs web开发入门: Simple-TODO Nodejs 实现版
  4. (五)Java工具类ArrayUtils详解
  5. cmos逻辑门传输延迟时间_CMOS和TTL都有哪些区别?图腾柱电路又是什么,详情进来一瞧!...
  6. c++ pat 乙级 -------1002 读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。
  7. 直播源码中有哪些网络协议需要注意?
  8. Shadow Properties之美(一)【Microsoft Entity Framework Core随笔】
  9. Luogu 3267 [JLOI2016/SHOI2016]侦察守卫
  10. Apache Thrift - 可伸缩的跨语言服务开发框架
  11. 2.Kong入门与实战 基于Nginx和OpenResty的云原生微服务网关 --- Kong 的安装和基本概念
  12. Java项目:校园自行车租赁管理系统(java+JSP+JavaScript+Servlet+Mysql)
  13. 华为推出首款折叠屏5G手机;微信“上车”时间已定;社区团购暗潮涌动
  14. 安防网络摄像头海康大华硬盘录像机视频流媒体服务器EasyNVR调用接口时提示未授权问题解决方案
  15. 回眸 2021,展望 2022
  16. JAVA数字大写金额转换
  17. java 6u45 no sni 2_sjscxz.taobao.com
  18. 32位单总线计算机系统中,计算机系统结构答案.doc
  19. 数字藏品的交易平台有哪些 nft数字藏品
  20. 数据库原理-ER模型转换为关系模型

热门文章

  1. abortonerror_离线打包白屏
  2. 实验五:任意输入10个int类型数据,排序输出,再找出素数
  3. 在深谈TCP/IP三步握手四步挥手原理及衍生问题—长文解剖IP
  4. python 进程池pool简单实例
  5. HTML5之音频audio知识(部分vedio)
  6. (转)Spring中ThreadLocal的认识
  7. 流程管理精英沙龙活动(深圳站)圆满结束
  8. Windows Server 2008 和 Windows Vista 结合的功能更加强大
  9. ant design vue table 高度自适应_html之table表格
  10. java流的写法_java IO-过滤流类的写法