【问题标题】:unable to read stata .dta file in python无法在 python 中读取 stata .dta 文件
【发布时间】:2017-11-01 09:01:08
【问题描述】:

我正在尝试使用pandas.read_stata 在 Python 中读取 Stata (.dta) 文件,但出现此错误:

ValueError: 给定 Stata 文件的版本不是 104、105、108、111 (Stata 7SE)、113 (Stata 8/9)、114 (Stata 10/11)、115 (Stata 12)、117 (Stata 13) ) 或 118 (Stata 14)

请指教。

【问题讨论】:

  • 你的意思是.dta吗?
  • 是的.dta文件:-),输入错误
  • 如果您在文本编辑器中检查 Stata .dta 文件,第一个字符将类似于 <stata_dta><header><release>118</release>,并且版本必须是 read_stata 错误消息中给出的值之一。

标签: python pandas stata


【解决方案1】:

只需使用 Pandas 的 read_table(),然后确保包含 delim_whitespace=Trueheader=None

【讨论】:

  • 我试过了,我得到了 CParserError 的错误:错误标记数据。 C 错误:预计第 5 行中有 8 个字段,看到 18 ,我认为数据拥塞,delim_whitespace 可能不起作用。
  • 你能在记事本中打开文件,看看里面的数据是什么样子的吗?是 csv 吗?
  • 是的,我打开了,不是逗号分隔的。可以用一些特殊字符和符号分隔。
【解决方案2】:

如果您的 .dta 文件的版本是 110 或 pandas 不支持的其他版本,您可以轻松使用pyreadstat python 库。该模块是优秀的 Readstat C 库的包装器。

pyreadstat 的优点在于该库返回 pandas 数据框。这是sn-p:

import pyreadstat    
dataframe, meta = pyreadstat.read_dta('Filepath.dta')

【讨论】:

    猜你喜欢
    • 2011-08-03
    • 1970-01-01
    • 1970-01-01
    • 2014-10-08
    • 1970-01-01
    • 2011-11-22
    • 2014-07-16
    • 2016-06-01
    相关资源
    最近更新 更多