用Jupyter+pandas数据分析,6种数据格式效率对比

本文对比了CSV、Pickle、MessagePack、HDF5、Feather和Parquet六种数据格式在Python数据分析中的性能,包括I/O速度、内存消耗和磁盘占用。测试结果显示,Feather在I/O速度和内存占用方面表现出色,而Parquet在文件大小和磁盘空间上具有优势。对于Jupyter Notebook用户,Feather可能是理想的选择,但在特定场景下,其他格式可能更为合适。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在使用Python进行数据分析时,Jupyter Notebook是一个非常强力的工具,在数据集不是很大的情况下,我们可以使用pandas轻松对txt或csv等纯文本格式数据进行读写。

然而当数据集的维度或者体积很大时,将数据保存并加载回内存的过程就会变慢,并且每次启动Jupyter Notebook时都需要等待一段时间直到数据重新加载, 这样csv格式或任何其他纯文本格式数据都失去了吸引力。

本文将对pandas支持的多种格式数据在处理数据的不同方面进行比较,包含I/O速度、内存消耗、磁盘占用空间等指标,试图找出如何为我们的数据找到一个合适的格式的办法!

格式说明

现在对本文进行对比的几种数据格式进行说明。

  • CSV:最常用的数据格式
  • Pickle:用于序列化和反序列化Python对象结构
  • MessagePack:类似于json,但是更小更块
  • HDF5:一种常见的跨平台数据储存文件
  • Feather:一个快速、轻量级的存储框架
  • Parquet:Apache Hadoop的列式存储格式

指标说明

为了找到格式来存储数据,本文选择以下指标进行对比。

  • size_mb:带有序列化数据帧的文件的大小
  • save_time:将数据帧保存到磁盘所需的时间
  • load_time:将先前转储的数据帧加载到内存所需的时间
  • save_ram_delta_mb:在数据帧保存过程中最大的内存消耗增长
  • load_ram_delta_mb:数据帧加载过程中最大的内存消耗增长
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值