1. 当前位置:首页>百科>CSV太慢了,快使用feather,速度提升 150 倍(feather是什么软件)

CSV太慢了,快使用feather,速度提升 150 倍(feather是什么软件)

先介绍下为什么要和CSV说再见,其实也谈不上彻底再见吧,日常还是要用的,这里再介绍一个更加高效的数据格式。

用Python处理数据时保存和加载文件属于日常操作了,尤其面对大数据量时我们一般都会保存成

CSV格式,而不是Excel。

一是因为Excel有最大行数1048576的限制,二是文件占用空间更大,保存和加载速度很慢。

虽然用CSV没有行数限制,相对轻便,但是面对大数据量时还是略显拉夸,百万数据量储存加载时也要等好久。。不过很多同学都借此机会抻抻懒腰、摸摸鱼,充分利用时间也不错。

其实,CSV并不是唯一的数据存储格式。今天和大家介绍一个速度超快、更加轻量级的二进制格式保存格式:feather。

# Feather是什么?

Feather是一种用于存储数据帧的数据格式。它最初是为了 Python和 R 之间快速交互而设计的,初衷很简单,就是尽可能高效地完成数据在内存中转换的效率。

现在 Feather 也不仅限于 Python和 R 了,基本每种主流的编程语言中都可以用 Feather 文件。不过,要说明下,它的数据格式并不是为长期存储而设计的,一般的短期存储。

# 如何在Python中操作Feather?

在 Python中,可以通过 pandas 或 Feather两种方式操作。首先需要安装feather-format。


只需要上面一行安装即可,很简单。

我们通过一个较大的数据集举例,需要 Feather、Numpy和 pandas来一起配合。数据集有 5 列和 1000 万行随机数。



它的用法和之前csv的操作难度一个水平线,非常简单。

# 保存

两种方式,一是 DataFrame直接to_feather的 Feather格式:


二是用 Feather库执行相同操作的方法:


# 加载

加载也是一样的,同样还是两种方式。一是通过pandas加载:


二是用 Feather加载:


操作习惯一样,难度完全没有。

# 和CSV的区别

对比产生美。下面来看下feather和csv的差距有多大。下图显示了上面本地保存 DataFrame 所需的时间:


差距巨大,有木有!原生 Feather(图中的Native Feather)比 CSV快了将近 150 倍左右。

如果使用 pandas处理 Feather文件并没有太大关系,但与 CSV相比,速度的提高是非常显著的。

然后再看下读取不同格式的相同数据集需要多长时间。


同样,差异也很明显。CSV的读取速度要慢得多。并且CSV占用的磁盘空间也更大。


CSV文件占用的空间是 Feather文件占用的空间的两倍多。假如我们每天存储千兆字节的数据,那么选择正确的文件格式至关重要。Feather在这方面完全碾压了 CSV。

当然,如果追求更多的压缩空间,也可以试试Parquet,也是一个可以替代CSV的格式。

# 结语

说了这么多,可能很多同学还是甩出一句话:谢谢,我选CSV。 这个东西怎么说呢,当你需要它时,它就有用,如果日常没有速度和空间的强烈需求,还是老老实实CSV吧。毕竟CSV已经用惯了,改变使用习惯还是挺难的。


本文采摘于网络,不代表本站立场,转载联系作者并注明出处:https://www.5amiao.com/baike/1096.html

联系我们

在线咨询:点击这里给我发消息

QQ号:1045784018

工作日:10:00-17:00,节假日休息