【python】pandas速度提升

pandas处理数据实在太慢了,先提一提pandas的速,再去找其他大数据分布式吧

numpy

之前用一步步手写python计算pearson系数,速度无比慢,其实stats已封装好如此经典的计算,直接调用即可。
一些统计的计算可参考官方文档

时间数据类型

dataframe的数据类型都是object,但数据量大了之后发现用dataframe还是很慢。
从csv读出的数据还是object类型,如果将时间格式转为datetiime格式,会提高效率。

df['date_time'] = pd.to_datetime(df['date_time'],format='%d/%m/%y %H:%M')

循环

如果增加一列是依赖另一列的,比如特征有开始和结束,我们想计算花费的时间
我用的比较多的是apply函数。

def func(st, ed):
	return ed - st
df['cost'] = df.apply(lambda x: func(x['start], x['end']), axis = 1)

如果你使用.apply()获取10年的小时数据,那么你将需要大约15分钟的处理时间。
如果这个计算只是大型模型的一小部分,那么你真的应该加快速度。这也就是矢量化操作派上用场的地方。

矢量化的操作

.isin()

发布了178 篇原创文章 · 获赞 30 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/ACBattle/article/details/103002445