之前看到过一篇文章,讲的就是如何在使用pandas的时候降低内存的开销。笔者亲自尝试了一下,发现确实不错,但是也会有很多问题,譬如,一些第三方包(例如statsmodels、alphalens等)的运算要求数据就是float64类型的,这使得我们很尴尬呀。
不管怎么样,如果我们自己处理数据的时候,或者第三方包支持的时候,这一系列方法还是很有用的。
1.查看dataframe占用空间
例如,我们读取之前的所有行情和因子数据:
data = pd.read_csv('total_data.csv', index_col=0)
data.info(memory_usage='deep') 首先,我们读取total_data.csv这个数据,并制定第一列是index,然后,我们获取一下这个dataframe这个对象在内存中的情况。
<class 'pandas.core.frame.DataFrame'>
Int64Index: 91427 entries, 6095 to 91426
Data columns (total 13 columns):
date 91427 non-null object
open 91427 non-null float64
close 91427 non-null float64
high 91427 non-null float64
low 91427 non-null float64
volume 91427 non-null float64
openinterest 91427 non-null int64
raw_factor 91427 non-null float64
sec_id 91427 non-null object

本文介绍了在Python Pandas中处理多因子模型数据时如何节省内存。通过查看DataFrame占用空间、转换时间列、指定数字列的数据类型和使用category类来减少内存消耗。例如,将时间列转为timestamp格式,将浮点数列设为float16,以及将重复元素较多的列设为category,可以显著降低内存占用。但需要注意,某些第三方库可能要求特定数据类型。
最低0.47元/天 解锁文章
2670

被折叠的 条评论
为什么被折叠?



