在Windows 7(x64)上用Pandas读取大型SPSS文件的性能
我有一个很大的SPSS文件(里面有超过100万条记录,差不多150列),我想把它转换成Pandas的DataFrame格式。
把这个文件转换成列表需要几分钟,然后再把列表转换成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 个回答
3
你可以使用 rawMode=True
来加快一些处理速度,像这样:
raw_data = spss.SavReader('largefile.sav', returnHeader=True, rawMode=True)
这样做的话,日期时间类型的变量(如果有的话)就不会被转换成 ISO 格式的字符串,而且 SPSS 的 $sysmis 值也不会被转换成 None
,还有其他一些小变化。