Pandas DataFrame 存储格式性能对比!

【Pandas】pandas DataFrame to_orc `pandas.DataFrame.to_orc(path=None, *, engine='pyarrow', index=None, engine_kwargs=None)` 是 `pandas` 提供的一个方法,用于将 **DataFrame 保存为 ORC(Optimized Row Columnar)格式的文件**。 ORC 是一种高效的列式存储格式,广泛应用于大数据生态系统(如 Apache Hive、Apache Spark、Presto 等),具有压缩率高、读写性能好、支持复杂类型等优点。 阅读详情

创建测试Dataframe

首先创建一个包含不同类型数据的测试Pandas Dataframe。



 import pandas as pd  
 import random  
 import string  
 import numpy as np  
   
 # Config DF  
 df\_length= 10\*\*6  
 start\_date= '2023-01-01'  
 all\_string= list(string.ascii\_letters + string.digits)  
 string\_length= 10\*\*1  
 min\_number= 0  
 max\_number= 10\*\*3  
   
 # Create Columns  
 date\_col= pd.date\_range(start= start\_date, periods= df\_length, freq= 'H')  
 str\_col= \[''.join(np.random.choice(all\_string, string\_length)) for i in range(df\_length)\]  
 float\_col= np.random.rand(df\_length)  
 int\_col= np.random.randint(min\_number,max\_number, size = df\_length)  
   
 # Create DataFrame  
 df= pd.DataFrame({'date\_col' : date\_col,  
                  'str\_col' : str\_col,  
                  'float\_col' : float\_col,  
                  'int\_col' : int\_col})  
 df.info()  
 df.head()


以不同的格式存储

接下来创建测试函数,以不同的格式进行读写。



 import time  
 import os  
   
 def check\_read\_write\_size(df, file\_name, compression= None) :  
    format= file\_name.split('.')\[\-1\]  
    # Write  
    begin= time.time()  
    if file\_name.endswith('.csv') : df.to\_csv(file\_name, index= False, compression= compression)  
    elif file\_name.endswith('.parquet') : df.to\_parquet(file\_name, compression= compression)  
    elif file\_name.endswith('.pickle') : df.to\_pickle(file\_name, compression= compression)  
    elif file\_name.endswith('.orc') : df.to\_orc(file\_name)  
    elif file\_name.endswith('.feather') : df.to\_feather(file\_name)  
    elif file\_name.endswith('.h5') : df.to\_hdf(file\_name, key= 'df')  
    write\_time= time.time() - begin  
    # Read  
    begin= time.time()  
    if file\_name.endswith('.csv') : pd.read\_csv(file\_name, compression= compression)  
    elif file\_name.endswith('.parquet') : pd.read\_parquet(file\_name)  
    elif file\_name.endswith('.pickle') : pd.read\_pickle(file\_name, compression= compression)  
    elif file\_name.endswith('.orc') : pd.read\_orc(file\_name)  
    elif file\_name.endswith('.h5') : pd.read\_hdf(file\_name)  
    read\_time= time.time() - begin  
    # File Size  
    file\_size\_mb = os.path.getsize(file\_name) / (1024 \* 1024)  
    return \[format, compression, read\_time, write\_time, file\_size\_mb\]


然后运行该函数并将结果存储在另一个Pandas Dataframe中。



 test\_case= \[  
            \['df.csv','infer'\],  
            \['df.csv','gzip'\],  
            \['df.pickle','infer'\],  
            \['df.pickle','gzip'\],  
            \['df.parquet','snappy'\],  
            \['df.parquet','gzip'\],  
            \['df.orc','default'\],  
            \['df.feather','default'\],  
            \['df.h5','default'\],  
            \]  
   
 result= \[\]  
 for i in test\_case :  
    result.append(check\_read\_write\_size(df, i\[0\], compression= i\[1\]))  
   
 result\_df= pd.DataFrame(result, columns= \['format','compression','read\_time','write\_time','file\_size'\])  
 result\_df


测试结果

下面的图表和表格是测试的结果。

我们对测试的结果做一个简单的分析:

CSV

  • 未压缩文件的大小最大

  • 压缩后的尺寸很小,但不是最小的

  • CSV的读取速度和写入速度是最慢的

Pickle

  • 表现得很平均

  • 但压缩写入速度是最慢的

Feather(再见 CSV,速度提升 150 倍!)

  • 最快的读写速度,文件的大小也是中等,非常的平均

ORC

  • 所有格式中最小的

  • 读写速度非常快,几乎是最快的

Parquet

  • 总的来说,快速并且非常小,但是并不是最快也不是最小的

以上就是“Pandas DataFrame 存储格式性能对比!”的全部内容,希望对你有所帮助。
​
​关于Python技术储备

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

在这里插入图片描述

二、Python必备开发工具

img

三、Python视频合集

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

img

四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

img

五、Python练习题

检查学习结果。

img

六、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

img

最后祝大家天天进步!!

上面这份完整版的Python全套学习资料已经上传至优快云官方,朋友如果需要可以直接微信扫描下方优快云官方认证二维码免费领取【保证100%免费】。

【Pandas】pandas DataFrame to_excel `pandas.DataFrame.to_excel()` 是 Pandas 提供的用于将 DataFrame 写入 Excel 文件的方法。它支持多种参数来控制输出格式、位置、缺失值表示等,适用于生成结构化报表或数据导出。 阅读详情

相关推荐

Pyspark中DataFrame与pandas中DataFrame之间的相互转换

Pyspark.sql.DataFrame与pandas.DataFrame之间的相互转换: # pandas转spark values = pandas_df.values.tolist() columns = pandas_df.columns.tolist() spark_df = spark.createDataFrame(values, columns) # spark转pand...

给我一点温度 1万+

Pandas DataFrame 数据存储格式比较

从结果来看,我们应该使用ORC或Feather,而不再使用CSV?是吗?“这取决于你的系统。如果你正在做一些单独的项目,那么使用最快或最小的格式肯定是有意义的。但大多数时候,我们必须与他人合作。所以,除了速度和大小,还有更多的因素。未压缩的CSV可能很慢,而且最大,但是当需要将数据发送到另一个系统时,它非常容易。

deephub 4184

【Pandas】pandas DataFrame to_stata

`pandas.DataFrame.to_stata()` 是 Pandas 提供的一个方法,用于将 `DataFrame` 写入 **Stata** 的 `.dta` 文件格式。该方法支持多种参数来控制输出格式、变量类型转换、日期处理、标签设置等,适用于与 Stata 软件进行数据交换。

weixin_39648905的博客 1146

Python Dataframe之excel、csv、pickle、feather、parquet、jay、hdf5 文件存储格式==》存读效率对比

今天看到一篇文章 参考:对比不同主流存储格式(csv, feather, jay, h5, parquet, pickle)的读取效率 然后我自己也试了一下,感觉发现了“新大陆”,T_T~到现在才知道还有这些存储形式,比这excel、csv快多了。 上次实习的时候,因为不知道可以存为其他格式,把多个几十个G的dataframe处理完后存为csv,过后又要读出来 心态瞬间崩了~ 搞数据都搞了好久,浪费时间~拐求 文章目录desk 读取CSV文件一、excel 存储格式(xlsx)二、csv 存储格式三、pic

积一时之步,臻千里之遥程 9661

【Pandas】pandas DataFrame to_markdown

`pandas.DataFrame.to_markdown()` 是 Pandas 提供的一个方法,用于将 `DataFrame` 转换为 **Markdown 表格格式** 的字符串或写入文件。该方法非常适合在文档、博客、Jupyter Notebook 中展示结构化数据。

weixin_39648905的博客 1125

【Pandas】pandas DataFrame to_json

`pandas.DataFrame.to_json()` 是 Pandas 提供的用于将 DataFrame 转换为 JSON 格式的方法。该方法支持多种输出格式(如记录列表、字典结构等),并提供丰富的参数来控制序列化行为,适用于数据交换、API 接口返回、日志记录等场景。

weixin_39648905的博客 960

DataFrame保存为csv还是pkl?

DataFrame保存为csv还是pkl,哪种文件格式更快、更省存储空间

dblyyds的博客 628

NumPy.npy与pandas DataFrame

用CSV格式来保存文件是个不错的主意,因为大部分程序设计语言和应用程序都能处理这种格式,所以交流起来非常方便。然而这种格式的存储效率不是很高,原因是CSV及其他纯文本格式中含有大量空白符;而后来发明的一些文件格式,如zip、bzip和gzip等,压缩率则有了显著提升 首先导入模块: In [1]: import numpy as np In [2]: import pandas as pd

星空永恒 6958

python将pandas数据转为spark的dataframe格式保存到hive中

使用python在调用集群跑数据之后,数据以pandas计算,输出的结果保存到hive数据库中,最老套的办法。(注意:这里的spark版本是1.6) 步骤: from pyspark.sql import HiveContext from pyspark import SparkConf, SparkContext from pyspark.sql import functions conf =...

yanpenggong的博客 6129

【Pandas】pandas DataFrame to_feather

`pandas.DataFrame.to_feather(path, **kwargs)` 是 Pandas 提供的用于将 DataFrame 写入 **Feather 文件格式** 的方法。Feather 是一种高效的二进制文件格式,专为快速读写设计,适用于跨语言(如 Python 和 R)的数据交换。

weixin_39648905的博客 1265

Pandas DataFrame性能优化实战:从日志清洗到分析就绪

Pandas DataFrame是Python数据分析的核心数据结构,其性能表现不取决于工具本身,而在于数据类型设计、索引构建与链式操作的工程实践。理解dtype预声明、category类型压缩、MultiIndex查询加速等底层原理,能显著提升百万行级结构化数据的处理效率。技术价值体现在内存降低40%~68%、groupby提速4倍以上、实时日志清洗耗时压缩至3分钟内。典型应用场景包括电商订单分析、IoT传感器数据处理、零售销售报表生成等需要高吞吐、低延迟的生产环境。本文聚焦真实SaaS系统中的JSON日

767

Pandas Dataframe存储到 MySql

Pandas Dataframe 存储到 MySql 这里我存的是MySql,这里使用非常好使的插入方法:若主键数据相同,则_更新_选中列的数据。一般都是主键相同会更新所有列的数据,其Sql语句格式为: ‘Inser into 表名 (列名1,列名2,…列名n) values (%s,%s,...%s) on duplicate key update 列名1 = values(列名1) 列名2=v...

weixin_44500833的博客 1422

Python将Pandas中Dataframe数据保存为gzip/zip文件:gzip压缩文件、zip压缩文件

Python将Pandas中Dataframe数据保存为gzip/zip文件:gzip压缩文件、zip压缩文件

data+scenario+science+insight 1361

Pandas中的DataFrame格式数据详细使用教程

在Python中,pandas 是一个强大的数据处理库,广泛应用于数据分析和操作结构化的数据。其中,DataFrame 是 pandas 中的核心数据结构之一,类似于一张二维表格,能够高效地存储和处理各种数据。

呱牛 Just do IT 3007

Python实战:使用Pandas保存和加载dataframe数据

在Python中,Pandas是一个十分常用的库,它提供了很多便捷的数据处理工具。这时,Pandas提供了pickle格式来保存dataframe数据,pickle格式是Python特有的二进制文件,可以将Python对象序列化并存储到文件中。以上就是使用Pandas保存和加载dataframe数据的全部内容,通过pickle格式的保存,可以方便地将pandas中的dataframe数据存储起来,下次需要使用时,只需加载pickle文件即可。

m0_47037246的博客 1698

【嵌入式原理系列-第七篇】ld脚本实战:从零构建MCU内存布局

本文是一篇针对嵌入式开发者的实战指南,详细讲解了如何从零开始为MCU编写ld链接器脚本以构建自定义内存布局。文章以STM32F103C8T6为例,深入剖析了MEMORY和SECTIONS指令的用法,并提供了OTA分区、非易失数据存储等高级定制案例,帮助开发者解决实际工程中的Flash与RAM管理难题,实现对程序运行的深度掌控。

weixin_29271263的博客 250

【Pandas】pandas.DataFrame.to_orc 详解与实战应用:将DataFrame写入ORC格式

ORC(Optimized Row Columnar)是一种高效的列式存储格式,广泛应用于大数据处理框架,如 Apache Hadoop 和 Apache Hive 等。Pandas 提供了 to_orc 方法,允许将 Pandas DataFrame 写入 ORC 文件。这篇博客将详细讲解 to_orc 方法,包括其作用、使用方法、参数详解、示例代码以及注意事项。

科技改变人类,技术成就未来 1332

EXCEL VBA 导出高清图片方法

EXCEL VBA 导出高清图片方法 将EXCEL表格内容另存为图片的方法有很多种,简单的比如“复制为图片格式并另存”,“打印成XPS”等等,本文着重的是利用VBA实现的方法。 该方法适合用于中大型图文表格输出为图片格式,方便传阅,在office2010及以上版本最为流畅。 具体看代码: Sub printA4() Dim rng As Range '定义截图范围变量 'm = 20...

nfser_burn7的专栏 1万+

【Pandas】pandas.DataFrame.to_parquet详解与实战应用:将DataFrame写入Parquet格式

Parquet 是一种开放的、列式存储格式,尤其适用于大数据处理框架,如 Apache Hadoop、Apache Spark 和 Apache Drill 等。Pandas 提供了 to_parquet 方法,该方法使得将 Pandas DataFrame 写入 Parquet 文件成为可能。这篇博客将详细讲解 to_parquet 方法,包括其作用、使用方法、参数详解、示例代码以及注意事项。

科技改变人类,技术成就未来 2490

用python提取PDF中各类文本内容的方法

用python提取PDF中各类文本内容的方法

安静的软件工程师 6089

ADS 使用教程(一)Workspace, Library and Cell

简要介绍ADS的基本内容

Dirge19的博客 6619

【python】 pandas.DataFrame.to_json 函数

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人们读取和编写,同时也易于机器解析和生成。结构清晰:键值对结构使得数据组织直观。语言无关:广泛支持多种编程语言。可扩展性:灵活的数据表示使得它适合各种应用场景。是一个用于将DataFrame转换为 JSON 字符串或将其导出为 JSON 文件的函数。

定期分享我的发现和想法,感谢你的陪伴和支持 5163

使用Gitlab 搭建私有镜像仓库(外置Nginx)

为了让团队尽快使用Gitlab的CI进行工作,必须做好Gitlab的初始化工作,大家都知道拉取镜像由于某些原因,会比较慢,因此构建自己的私有镜像仓库就成为了关键的一步。当然私有镜像仓库的搭建有很多种方式,这里直接使用Gitlab提供的镜像仓库功能。一揽子解决方案比较香。gitlab真的越来越好用了,有了这个镜像仓,也没必要再使用三方的镜像仓库了。Devops 真好用!

网尘的技术专栏 1829
上一篇: pandas实战:出租车GPS数据分析
下一篇: 写 Python 代码不可不知的函数式编程技术
壹只小小码农
博客等级 码龄5年 8104粉丝 1333原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值