Pandas教程 | Pandas性能优化方法,让你的pandas飞起来!

本文介绍了Pandas数据读取、聚合操作、逐行处理和使用numba进行性能优化的方法。通过实验对比,展示了优化技巧如何显著提高Pandas运行效率,如使用pkl或hdf格式存储数据、利用内置函数、向量化处理和numba加速计算。
摘要由CSDN通过智能技术生成

微信公众号:「Python读财」
如有问题或建议,请公众号留言

Pandas是Python中用于数据处理与分析的屠龙刀,想必大家也都不陌生,但Pandas在使用上有一些技巧和需要注意的地方,尤其是对于较大的数据集而言,如果你没有适当地使用,那么可能会导致Pandas的运行速度非常慢。

对于程序猿/媛而言,时间就是生命,这篇文章给大家总结了一些pandas常见的性能优化方法,希望能对你有所帮助!

一、数据读取的优化

读取数据是进行数据分析前的一个必经环节,pandas中也内置了许多数据读取的函数,最常见的就是用pd.read_csv()函数从csv文件读取数据,那不同格式的文件读取起来有什么区别呢?哪种方式速度更快呢?我们做个实验对比一下。

这里采用的数据共59万行,分别保存为xlsx、csv、hdf以及pkl格式,每种格式进行10次读取测试,得到下面的结果。

image

可以看到,对同一份数据,pkl格式的数据的读取速度最快,是读取csv格式数据的近6倍,其次是hdf格式的数据,速度最惨不忍睹的是读取xlsx格式的数据(这仅仅是一份只有15M左右大小的数据集呀)。

所以对于日常的数据集(大多为csv格式),可以先用pandas读入,然后将数据转存为pkl或者hdf格式,之后每次读取数据时候,便可以节省一些时间。代码如下:

 import pandas as pd
 #读取csv
 df = pd.read_csv('xxx.csv')

 #pkl格式
 df.to_pickle('xxx.pkl') #格式另存
 df = pd.read_pickle('xxx.pkl') #读取

 #hdf格式
df.to_hdf('xxx.hdf','df') #格式另存
df = pd.read_hdf('xxx.pkl','df') #读取

二、进行聚合操作时的优化

在使用aggtransform进行操作时,尽量使用Python的内置函数,能够提高运行效率。(数据用的还是上面的测试用例)

1、agg+Python内置函数

image

2、agg+非内置函数

image
可以看到对 agg 方法,使用内置函数时运行效率提升了60%。

3、transform+Python内置函数

image

4、transform+非内置函数

image

transform方法而言,使用内置函数时运行效率提升了两倍。

三、对数据进行逐行操作时的优化

假设我们现在有这样一个电力消耗数据集,以及对应时段的电费价格,如下图所示:

image

image

数据集记录着每小时的电力消耗,如第一行代表2001年1月13日零点消耗了0.586kwh的电。不同使用时段的电费价格不一样,我们现在的目的是求出总的电费,那么就需要将对应时段的单位电费×消耗电量。下面给出了三种写法,我们分别测试这三种处理方式,对比一下这三种写法有什么不同,代码效率上有什么差异。

#编写求得相应结果的函数
  • 5
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值