停止使用 CSV 进行存储,这种文件格式快 150 倍
Posted Python学习与数据挖掘
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了停止使用 CSV 进行存储,这种文件格式快 150 倍相关的知识,希望对你有一定的参考价值。
欢迎关注 ,专注Python、数据分析、数据挖掘、好玩工具!
CSV 不是唯一的数据存储格式。事实上,这可能是你应该考虑的最后一个。如果你不打算手动编辑保存的数据,那么坚持下去就是在浪费时间和金钱。
如果你没有对文件格式进行太多研究,收集大量数据并将它们存储在云中并选择了 CSV 进行保存,我相信你的开支将会很大!我们只需一个简单的调整可以将它们减少一半,甚至更多,这个调整是选择不同的文件格式。
今天,我将分享 Feather 数据格式的来龙去脉,它是一种用于存储数据帧的快速轻量级的二进制格式。
Feather 究竟是什么?
简而言之,它是一种用于存储数据帧的数据格式,它围绕一个简单的前提而设计:尽可能高效地将数据帧推入和推出内存,它最初是为 Python 和 R 之间的快速通信而设计的,但你不仅限于此用例。
你需要安装 feather-format 才能继续 Feather。
# Pip
pip install feather-format
# Anaconda
conda install -c conda-forge feather-format
如何在Python中使用Feather?
让我们从导入库并创建一个相对较大的数据集开始。
import feather
import numpy as np
import pandas as pd
np.random.seed = 42
df_size = 10_000_000
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()
接下来我们将其保存在本地。 你可以使用以下命令将 DataFrame 保存为 Pandas 的 Feather 格式:
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 与 Feather,你应该使用哪一个?
如果你不需要动态更改数据,答案很简单,应该使用 Feather 而不是 CSV。让我们做一些测试。
下图显示了本地保存上一节中的 DataFrame 所需的时间:
原生 Feather 比 CSV 快 150 倍左右。如果你使用 Pandas 来处理 Feather 文件并没有太大关系,但是与 CSV 相比,速度的提高是显着的。
接下来,让我们比较读取不同格式的相同数据集需要多长时间
CSV 的读取速度要慢得多。存储消耗呢?
如你所见,CSV 文件占用的空间是 Feather 文件占用的空间的两倍多。
小结
如果你每天存储千兆的数据,那么选择正确的文件格式至关重要。 Feather 在这方面摧毁了 CSV。如果你需要更多压缩,应该尝试 Parquet。 我发现它是最好的格式。总而言之,Feather 可以为你节省大量时间和磁盘空间。
技术交流
欢迎转载、收藏、有所收获点赞支持一下!
目前开通了技术交流群,群友已超过2000人,添加时最好的备注方式为:来源+兴趣方向,方便找到志同道合的朋友
方式①、发送如下图片至微信,长按识别,后台回复:加群;
方式②、添加微信号:pythoner666,备注:来自CSDN
方式③、微信搜索公众号:Python学习与数据挖掘,后台回复:加群
以上是关于停止使用 CSV 进行存储,这种文件格式快 150 倍的主要内容,如果未能解决你的问题,请参考以下文章