之前看到过一篇文章,讲的就是如何在使用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