这是一个对我来说很方便的小功能,使用了一些在最初提出问题时可能无法使用的熊猫功能:
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
我在100分钟内加载了一个11G Stata文件,如果我厌倦了等待并点击cntl-c,那么有一些东西可以玩.