【问题标题】:pandas and Stata 13 files熊猫和 Stata 13 文件
【发布时间】:2014-06-05 07:00:42
【问题描述】:

我安装了 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 数据集文件。我是不是做错了什么?

【问题讨论】:

    标签: python pandas stata


    【解决方案1】:

    我的猜测是您并没有做任何本质上的错误,但是您的 pandas 版本无法处理 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。看到这个答案:

    Read Stata 13 file in R

    编辑

    解决方案 3。

    GitHub 中进行了一些讨论后,熊猫似乎对 Stata 13 数据集的问题是 string 变量。所以另一种解决方案可能是将字符串转换为数字类型。请参阅help encode,它将创建适当的值标签;或者help realhelp destring,如果字符串恰好是字符串类型的数字。

    【讨论】:

    • 谢谢罗伯托。解决方案 1:Stata 13 文件仍然无法与 pandas v0.14.0 一起使用,至少在我的系统上是这样。解决方案2:是的,这正是我所做的;只需将数据集保存为 Stata 12 格式(Stata 中的“saveold”) - pandas 可以正确读取这些数据集。
    • 我可以重现该问题。我已经在这里报告了:github.com/pydata/pandas/issues/7360.
    猜你喜欢
    • 2014-07-16
    • 2014-01-04
    • 1970-01-01
    • 1970-01-01
    • 2020-02-02
    • 1970-01-01
    • 2022-12-11
    • 1970-01-01
    相关资源
    最近更新 更多