zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

停止使用 CSV 进行存储,这种文件格式快 150 倍

存储 进行 csv 文件格式 这种 150
2023-09-14 09:06:06 时间

欢迎关注 ,专注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学习与数据挖掘,后台回复:加群

长按关注