我安装了pandas 0.13.1,但pandas.read_stata()
无法读取以Stata 13格式创建的 .dta 文件,错误
TypeError: cannot concatenate 'str' and 'NoneType' objects
使用Stata 12格式保存的相同数据集完全没问题。
我认为最新发布的pandas(0.13.1)处理了Stata 13数据集文件。我做错了吗?
答案 0 :(得分:4)
我的猜测是你没有做任何本质上错误的事情,但是你的熊猫版本无法处理Stata 13数据集文件。正如help dta中所述,Stata .dta数据集的格式随着Stata 13的发布而改变。
解决方案1。
将您的pandas更新为v0.14.0(2014年5月31日):
read_stata现在接受Stata 13格式(GH4291)
来源:http://pandas.pydata.org/pandas-docs/stable/whatsnew.html
解决方案2。
如果您有权访问Stata,可以通过多种方式恢复早期/不同的格式,这些格式应与您早期版本的pandas一起使用。看到这个答案:
解决方案3。
在GitHub中进行一些讨论之后,问题熊猫似乎与Stata 13数据集有 string 变量。所以另一个解决方案可能是将字符串转换为数字类型。请参阅help encode
,这将创建适当的价值标签;或者可能是help real
或help destring
,如果字符串碰巧只是字符串类型中的数字。