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

如何在Python中以正确编码打开dta文件并解决NaN与TypeError问题?

解决pandas读取Stata文件全为NaN且无法添加编码参数的问题
  • 先修正代码变量名错误:你定义了df却打印data,这会触发未定义错误,先改成:

    df = pd.read_stata('selfemp.dta')
    print(df)
    
  • pandas的read_stata()在旧版本中不支持encoding参数,这就是你添加编码参数触发TypeError的原因,具体解决思路如下:

    1. 升级pandas到支持encoding的版本(1.0及以上),然后尝试Stata常用编码:
      df = pd.read_stata('selfemp.dta', encoding='latin-1')
      # 也可尝试 utf-8、cp1252 等编码
      
    2. 如果升级后仍有问题,使用专门处理统计文件的pyreadstat库,它对编码的兼容性更好:
      pip install pyreadstat
      
      import pyreadstat
      df, meta = pyreadstat.read_dta('selfemp.dta', encoding='latin-1')
      print(df)
      
    3. 尝试关闭分类变量自动转换,部分场景下分类变量的编码异常会导致列值显示为NaN:
      df = pd.read_stata('selfemp.dta', convert_categoricals=False)
      

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 00:25:02