熊猫和Stata 13文件


问题内容

我安装了熊猫0.13.1,但pandas.read_stata()无法读取以Stata 13格式创建的 .dta 文件,出现错误

TypeError: cannot concatenate 'str' and 'NoneType' objects

以Stata 12格式保存的同一数据集完全没有问题。

我认为最新版本的熊猫(0.13.1)处理了Stata 13数据集文件。难道我做错了什么?


问题答案:

我的猜测是您没有做任何天生的错误,但是您的熊猫版本无法处理Stata
13数据集文件。如help dta中所述,Stata
.dta数据集的格式随Stata 13的发布而改变。

解决方案1。

将您的熊猫更新到v0.14.0(2014年5月31日):

read_stata现在接受Stata 13格式(GH4291)

资料来源:http :
//pandas.pydata.org/pandas-
docs/stable/whatsnew.html

解决方案2。

如果您可以使用Stata,则有多种方法可以还原到较早版本的熊猫所能使用的较早/不同格式。看到这个答案:

在R中读取Stata 13文件

编辑

解决方案3。

GitHub上进行一些讨论之后,Stata
13数据集的大熊猫似乎是 字符串 变量。因此,另一种解决方案是将字符串转换为数字类型。请参阅help encode,它将创建适当的值标签;或,help real或者help destring,如果字符串恰好是字符串类型中的数字。