性能在Windows 7(x64)上读取pandas数据帧中的大型SPSS文件

时间:2014-08-07 11:18:11

标签: python pandas spss

我有一个大型SPSS文件(包含一百多万条记录,有一些不到150列),我想将其转换为Pandas DataFrame。

将文件转换为列表需要几分钟,而将其转换为数据帧需要几分钟,而不是设置列表头几分钟。

是否有任何可能的优化,我错过了?

import pandas as pd
import numpy as np
import savReaderWriter as spss

raw_data = spss.SavReader('largefile.sav', returnHeader = True) # This is fast
raw_data_list = list(raw_data) # this is slow
data = pd.DataFrame(raw_data_list) # this is slow
data = data.rename(columns=data.loc[0]).iloc[1:] # setting columnheaders, this is slow too.

1 个答案:

答案 0 :(得分:3)

您可以使用rawMode=True来加快速度,例如:

raw_data = spss.SavReader('largefile.sav', returnHeader=True, rawMode=True)

这样,datetime变量(如果有的话)不会转换为ISO字符串,SPSS $ sysmis值也不会转换为None,还有其他一些东西。