当前位置: 首页 > article >正文

python 数据保存格式的选择

今天发现一个问题,就是有一个数据,很长,几百个被试的fmri数据,有10M+行,使用pandas.to_csv占用的时间特别长,写了20分钟还没写完。于是上网寻找更快的数据保存方式。

  1. HDF5
    网上首推的是h5为后缀的格式,这个是fmriprep使用的格式。这个的好处在于,对于很长不宽的数据(很多行,列不多),10M+,写入的速度是to_csv的二十几倍。坏处在于需要读取后进一步转换成data.frame和csv,并且保存为h5的数据size会变大,其利用磁盘空间代替来提升速度。推荐使用的场景是大数据(1G+)的长数据。
stage.to_hdf(r'path/file.h5', key='stage', mode='w')
  1. tsv和csv
    tsv和csv的速度差不多,两者差不多,区别在于tsv能解决数据中字符串带有逗号(‘,’)的问题,因为csv是基于逗号分隔,会额外分割数据。
  2. csv和txt
    两者速度差不太多。
  3. 优化csv - pyarrow
    pyarrow 能优化to csv的速度,大概是快8x
import pyarrow as pa
import pyarrow.csv as csv
df = pandas.DataFrame(xxxxxx)
new_df = pa.Table.from_pandas(df)
new_df_name = 'Downloads/data/results'
csv.write_csv(new_df, new_df_name) # 不需要加其他参数,自动带header 和没有index

最后还是强烈推荐使用 pyarrow。


http://www.kler.cn/a/104088.html

相关文章:

  • 深入理解JVM虚拟机第十二篇:JVM中的线程说明
  • DevOps持续集成-Jenkins(2)
  • 最简单的修改linux系统上Docker的镜像源
  • 2023CSPJ 旅游巴士 —— dijkstra
  • MySQL: String 字符串相关函数整理
  • SOLIDWORKS 2024新功能 3D CAD三维机械设计10大新功能
  • SQL INSERT INTO 语句(在表中插入)
  • mysql源码编译安装
  • 【Maven教程】(九):使用 Maven 进行测试 ~
  • JDBC连接参数配置
  • linux-文件系统
  • 一次js请求一般情况下有哪些地方会有缓存处理?
  • Python爬虫:ad广告引擎的模拟登录
  • Golang开发软件
  • 如何使用vim粘贴鼠标复制的内容
  • hugo-stack for github
  • SpringBoot集成Redis主从架构实现读写分离(哨兵模式)
  • 学习笔记二十四:K8S四层代理Service
  • 软件测试常用的8种功能测试类型有哪些?
  • 100 # mongoose 的使用