我使用以下代码(请参阅此处Pandas read_stata() with large .dta files)在Python中加载非常大的Stata数据集(20GB)。我的机器有128 GB RAM。
def load_large_dta(fname):
import sys
reader = pd.read_stata(fname, iterator=True)
df = pd.DataFrame()
try:
chunk = reader.get_chunk(100*1000)
while len(chunk) > 0:
df = df.append(chunk, ignore_index=True)
chunk = reader.get_chunk(100*1000)
print '.',
sys.stdout.flush()
except (StopIteration, KeyboardInterrupt):
pass
print '\nloaded {} rows'.format(len(df))
return df
问题是:我收到以下错误:
OverflowError:Python int太大而无法转换为C long
你知道如何解决这个问题吗?