用羽毛替换 CSV

用羽毛替换 CSV

一个 逗号分隔值 ( CSV ) 文件是分隔的 文本文件 使用一个 逗号 分隔值。文件的每一行都是一个数据 记录 .每条记录由一个或多个 字段 , 被逗号隔开。

在数据科学中,CSV 格式主要用于社区,尤其是用于学习或从一个点发送到另一个点。对于大数据集,CSV 的读写时间可能会成为问题。

为了解决这个问题并执行更有效的数据交换过程,开发了 Feather 格式。正如他们自己所说,Feather 是一种“用于 R 和 Python 的数据帧的快速磁盘格式,由 Apache Arrow 提供支持”。它旨在加快存储和导入数据帧的过程,使其更加高效。

什么是羽毛?

Feather 是一种快速、轻量级且易于使用的二进制文件格式,用于存储数据帧。它有几个具体的设计目标:

  • 轻量级、最小化 API:尽可能简单地将数据帧推入和推出内存
  • 与语言无关:无论是由 Python 还是 R 代码编写的羽毛文件都是相同的。其他语言也可以读写 Feather 文件。
  • 高读写性能。如果可能,羽化操作应受本地磁盘性能的约束。

熊猫的羽毛

Pandas 已经有一个 read_feather() 函数,并且所有 pandas DataFrames 都有属性 to_feather() ,这使我们可以像处理普通 .csv 文件一样使用 Feather。

优点

  • 与 CSV 相比,文件大小更小
  • 对数据帧进行更快的读写操作。

羽毛与 csv

我们将创建假数据来比较读写速度以及文件大小。该数据集将包含 900 万行和 10 列。

导入库

 #导入库 将熊猫导入为 pd  
 将 numpy 导入为 np  
 进口时间  
 进口我们

生成数据

 #生成数据 列 = 10  
 行 = 9000000  
 np.random.seed(0) df = pd.DataFrame(np.random.rand(行,列),  
 列=[“column_1”、“column_2”、“column_3”、“column_4”、“column_5”、“column_6”、“column_7”、“column_8”、“column_9”、“column_10”])

使用羽毛

 #使用羽毛 time_feather = time.process_time()  
 df.to_feather('data.feather')  
 feather_write = time.process_time() - time_feather  
 time_feather = time.process_time()  
 羽毛 = pd.read_feather('data.feather')  
 feather_read = time.process_time() - time_feather

使用 CSV

 #使用 csv time_feather = time.process_time()  
 df.to_csv('data.csv', index=False)  
 csv_write = time.process_time() - time_feather  
 time_feather = time.process_time()  
 csv = pd.read_csv('data.csv')  
 csv_read = time.process_time() - time_feather

文件大小

 #文件大小 file_size = os.stat('data.feather')  
 羽毛尺寸=圆形(file_size.st_size /(1024 * 1024),3)  
 file_size = os.stat('data.csv')  
 csv_size = round(file_size.st_size / (1024 * 1024), 3)

比较时间

 # 比较时间 df = pd.DataFrame({'Write(s)': [feather_write, csv_write],'Read(s)': [feather_read, csv_read],'Size (mb)': [feather_size, csv_size]},index=[ '羽毛','CSV'])  
 打印(df)

结果

速度和文件大小的差异令人印象深刻。

结论

Feather 是一种优化且高效的数据存储方式。无论是读取还是写入操作都很快,并且可以最小化文件大小。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明

本文链接:https://www.qanswer.top/38712/41432213

posted @ 2022-09-22 13:44  哈哈哈来了啊啊啊  阅读(94)  评论(0编辑  收藏  举报