我正在尝试使用StataReader将Stata 13中的大型数据集导入到pandas中。这与pandas 0.13.1一起工作正常,但在我升级到0.14.1之后,读取.dta文件的能力似乎已经大大恶化。有没有人知道发生了什么(我在PANDAS网站的"什么是新的"部分找不到任何StataReader的变化),和/或如何解决这个问题?
重现我的问题的步骤:
在Stata 13中创建一个大型数据集:
clear
set obs 11500
forvalues i = 1/8000{
gen var`i' = 1
}
saveold bigdataset, replace
尝试使用StataReader将其读入pandas:
from pandas.io.stata import StataReader
reader = StataReader('bigdataset.dta')
data = reader.data()
使用pandas 0.13.1,这需要大约220秒,这是可以接受的,但使用pandas 0.14.1,即使在等待大约20分钟后也没有发生任何事情。
当我使用较小的数据集测试此问题时:
在Stata 13中创建一个较小的数据集:
clear
set obs 11500
forvalues i = 1/1000{
gen var`i' = 1
}
saveold smalldataset, replace
尝试使用StataReader将其读入pandas:
from pandas.io.stata import StataReader
reader = StataReader('smalldataset.dta')
data = reader.data()
使用pandas 0.13.1,这需要大约20秒,但使用pandas 0.14.1,这需要大约300秒。
我真的想升级到新的pandas版本并使用我的数据,大小与bigdataset.dta相当。有没有人知道我能有效导入数据的方法?
答案 0 :(得分:0)
对于任何偶然发现并且对答案感兴趣的人 - 我根据Roberto的建议在熊猫Github页面上发布了这个问题,他们已经找到并修复了性能问题。它现在使用他们的主分支很好用!