如何读取.dta文件

type
status
date
slug
summary
tags
category
icon
password
网址
作者
标签
文章链接
发布时间
来源
在 Python 中,可以使用 pandas 库或 pyreadstat 库来读取 Stata 的 .dta 文件。以下是两种方法的示例:

方法 1:使用 pandas(推荐)

pandas 提供了 read_stata() 函数,可以直接读取 .dta 文件:

参数说明

  • convert_dates=True(默认):自动转换日期变量。
  • convert_categoricals=True(默认):将 Stata 的分类变量转为 pandas 的 category 类型。
  • preserve_dtypes=True(默认):尽量保持 Stata 的数据类型。
  • columns=None:可选,指定要读取的列名列表。
  • index_col=None:可选,指定索引列。

示例(带参数)


方法 2:使用 pyreadstat(适用于大文件或特殊编码)

pyreadstat 是一个更高效的库,特别适合处理大型 .dta 文件或需要更精细控制的情况:

参数说明

  • apply_value_formats=True:是否应用 Stata 的标签(如分类变量的值标签)。
  • encoding="latin1":指定编码(某些旧版 Stata 文件可能需要)。
  • usecols=["var1", "var2"]:只读取指定变量。

示例(带参数)


如何选择?

  • 一般情况:直接用 pandas.read_stata(),简单方便。
  • 大数据或特殊需求:用 pyreadstat,速度更快,支持更多格式选项。
  • 中文乱码问题:如果遇到中文乱码,可以尝试:

    注意事项

    1. Stata 版本pandas 默认支持 Stata 13-15 格式,较新的 Stata 17 文件可能需要更新库。如果报错,尝试:
    1. 分类变量:如果 Stata 文件包含带标签的分类变量,pandas 会自动转为 category 类型。
    1. 缺失值:Stata 的缺失值(如 ..a.b)会被转为 NaN

    读取大型dta文件并逐个保存为xlsx文件

    如果dta文件过大,想逐个拆分并保存为xlsx文件,代码如下
    Prev
    Python中的enumerate函数详解
    Next
    针对DataFrame的切片操作
    Loading...
    Article List
    Practice makes perfect
    文献集锦
    如何理论创新?
    管理学理论集锦
    Python实际应用
    聚类标准误与固定效应
    巫师3:狂猎
    Stata应用技巧
    Python知识与技巧
    双重差分法(DID)
    创新文献阅读与摘要
    计量经济学
    Python绘图相关