You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用pandas与pyreadstat读取.DTA文件遇版本不支持错误

解决版本48的DTA文件无法被pandas/pyreadstat读取的问题

你遇到的问题是版本48的Stata DTA文件过于老旧,不在pandas和pyreadstat的支持范围内(两者仅兼容版本105及以上的DTA文件)。以下是可行的解决办法:

方法1:用Stata转换文件版本

如果能获取Stata软件,按以下步骤操作:

  • 打开Stata,加载目标文件:use "test.DTA", clear
  • 另存为高版本格式(推荐Stata 13+,适配大多数工具):save "test_v13.DTA", replace version(13)
  • 之后用pandas或pyreadstat读取新文件即可:
    import pandas as pd
    df = pd.read_stata("test_v13.DTA")
    

方法2:借助R语言转换格式

没有Stata的话,可通过R的foreign包转换文件:

  1. 安装并加载foreign包:
    install.packages("foreign")
    library(foreign)
    
  2. 读取老版本DTA并保存为CSV(通用格式):
    data <- read.dta("test.DTA", convert.factors = FALSE)
    write.csv(data, "test.csv", row.names = FALSE)
    
  3. 在Python中读取转换后的CSV:
    import pandas as pd
    df = pd.read_csv("test.csv")
    

方法3:使用小众Python库读取老版本

部分第三方库支持更早期的DTA版本,比如dta-reader:

  • 安装库:pip install dta-reader
  • 读取文件:
    from dta_reader import dta_reader
    df = dta_reader.read_dta("test.DTA")
    
    注意:这类库维护活跃度较低,复杂数据结构可能存在兼容性问题。

内容的提问来源于stack exchange,提问作者jonas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 04:45:45