我有一个大型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.
答案 0 :(得分:3)
您可以使用rawMode=True
来加快速度,例如:
raw_data = spss.SavReader('largefile.sav', returnHeader=True, rawMode=True)
这样,datetime变量(如果有的话)不会转换为ISO字符串,SPSS $ sysmis值也不会转换为None
,还有其他一些东西。