笔记·Pandas几类数据读写方法对比——csv,parquet,feather和pickle

本文对比了CSV、Parquet、Feather和Pickle在数据读写效率上的表现,特别关注轨迹数据处理场景,推荐Feather因高效而适合Python,Parquet适用于分布式计算,Pickle适合Python环境但注意安全性。

Pandas读取文件类型的数据方法有很多,当读取大文件时往往需要一点技巧来提高效率。

简单对比一下csv,parquet,feather和pickle这几类数据的读写效率,正好最近在处理轨迹数据,特别记录在此。

1.csv格式

csv格式可以通过文本形式直接读取,但是读取和存储效率较低。

'''
读取csv文件示例,16828849条数据,1.32GB
'''
pd_csv = pd.read_csv("data.csv") # 最常规的读取方式,也是最慢的
# time 11.286217212677002s
pd_csv_pa = pd.read_csv("data.csv", engine="pyarrow") # 利用pyarrow引擎,可以大幅提高效率
# time 3.797694206237793s
'''
存储csv文件示例
'''
pd_csv.to_csv("data.csv") # 存储csv效率很低
# time 55.74313497543335s

2.parquet格式

parquet被广泛用作表格数据集的主要文件格式,在Hadoop生态中被广泛应用,所以此类格式适用于Java、Scala、Python、R的环境中,兼顾适用范围和效率。

pandas1.4版本之后,使用parquet可以调用pyarrow和fastparquet两个引擎,需要额外安装。

# parrow:
pip install pyarrow
# fastparquet:
pip install fastparquet>=0.8
pip install python-snappy
'''
读取parquet文件示例,16828849条数据,313MB
'''
pd_pq_pa = pd.read_parquet("data.parquet", engine=
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值