社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

Stata+Python:导入超大Excel文档的新思路-以国泰安为例

连享会 • 4 月前 • 184 次点击  

👇 连享会 · 推文导航 | www.lianxh.cn

🍓 课程推荐:2024 政策优化和机制分析专题
主讲老师:杨海生 (中山大学)
课程时间:2024 年 8 月 8-10 日 (三天)
授课地点:西安 · 西北工业大学 (线下授课)

本期课程为大家提供了一些进行政策评价的新视角和新工具。我们不再满足于验证政策是否有效,还可以分析政策的作用机制、政策公平性和政策的可迁移性等,以便让政策分析更有弹性和深度。核心内容如下:

  • 政策的作用机制:如何检验和分析?
    • 逐步检验法 | 双重纠偏 Lasso | 敏感性分析
    • 因果路径分析 | 连续型中介变量 | 多重中介检验
    • 渠道相关性检验 | 中介渠道相对重要性分析
  • 政策优化和政策公平性
    • 当前政策如何优化?政策学习 | 政策迁移学习
    • 如何兼顾效率和公平性?
    • 政策绩效评估:基于多臂 Qini 曲线
    • 基于网络的政策学习:溢出效应和同伴效应
  • 分析工具:DID 分析的新范式
    • 纽曼正交框架下的 DID
    • 匹配框架下的 DID
    • 多期 DID:假设条件和检验方法

作者:张春雷(东北财经大学)
邮箱:hzhchl@126.com

温馨提示: 文中链接在微信中无法生效。请点击底部「阅读原文」。或直接长按/扫描如下二维码,直达原文:


目录

  • 1. 引言

  • 2. 新的思路和方法

  • 3. 总结

  • 4. 参考资料



1. 引言

在进行数据处理的过程中,使用 import excel 命令导入 Excel 文档方便且高效。但 Stata 在导入体积超过 40MB 的 Excel 文档时会报错并提示文档过大。

以 CSMAR 上市公司数据库董监高个人特征数据为例,原始 Excel 文档高达 180MB ,Stata 无法直接导入。对于该问题,网络上已有相关讨论,连享会《 Stata 数据处理:超大 Excel 文档如何读入》总结了四种处理该问题的方法并列出了优缺点。

除此之外,也可以在下载阶段就将大型数据分为若干文档以满足 Stata 导入要求。

方法优点缺点
1. excelxlsxlargefile 命令数据规整,不易出错速度慢,占用内存高
2. 转化为 .csv 格式直观简单转换慢, 易出现乱码
3. 转化为 .txt 格式直观简单转换慢,易出现乱码
4. 直接复制粘贴非常直观数据损失,剪切板占用内存高,电脑易死机

2. 新的思路和方法

python 在数据处理方面效率非常高,使用 Stata + python 联合将大大提高数据读入导出的效率。该方法的突出优点是内存占用低,效率高。

Stata16 以上版本加入了 python 接口,因此只需在 Stata 命令框输入以下代码就能完成从读入到导出的全部过程。注意:请确保您的电脑已经正确安装并配置了 python 环境,可参见如下推文:(在 Stata 命令窗口中输入 lianxh Python 可以查看所有相关推文)

  • 专题:Stata教程
    • Stata-Python交互-10:Stata17 新特性之PyStata的配置与应用
    • Stata-Python交互-9:将python数据导入Stata
    • Stata-Python交互-8:将Stata数据导入Python
    • Stata-Python交互-7:在Stata中实现机器学习-支持向量机
    • Stata-Python交互-6:调用APIs和JSON数据
    • Stata-Python交互-5:边际效应三维立体图示
    • Stata-Python交互-4:如何调用Python宏包
    • Stata-Python交互-3:如何安装Python宏包
    • Stata-Python交互-2:在Stata中调用Python的三种方式
    • Stata-Python交互-1:二者配合的基本设定
  • 专题:Python-R-Matlab
    • Stata交互:Python-与-Stata-对比

在 stata 命令框中逐行输入以下代码:

python
import os
os.chdir(r"E:/资料/国泰安/董监高个人特征"
import pandas as pd
df = pd.read_excel("董监高个人特征.xlsx")
print(df.head())
df[df.columns.tolist()] = df[df.columns.tolist()].astype(str)
df.to_stata(r"E:/资料/国泰安/董监高个人特征/董监高个人特征.dta",write_index=True,version=119)
end

代码解读:

import os
os.chdir(r"E:/资料/国泰安/董监高个人特征"
  • 切换工作路径到文件所在的文件夹
import pandas as pd
df = pd.read_excel("董监高个人特征.xlsx")
  • 导入pandas数据处理模块并读取 Excel 文档
print(df.head())
  • 查看表头(该行可省略)
df[df.columns.tolist()] = df[df.columns.tolist()].astype(str)
  • 将所有列都转换为字符串格式(否则导出过程容易报错)
df.to_stata(r"E:/资料/国泰安/董监高个人特征/董监高个人特征.dta",write_index=True,version=119)
  • 导出为 Stata 格式的 .dta 文件。

以上代码运行过程中,读取共花费 12 分钟,耗费内存 1.8GB ,输出 Stata 格式文件耗时 2 分30 秒,导出后的 .dta 文件大小为 1.7GB。

另:经测试,在 IDLE( python 自带的集成开发环境)中,上述代码的运行时间更短,执行效率更高。

3. 总结

使用 Stata+python 不仅能满足导入大型 Excel 文档的要求,而且上述方法具有准确性高,占用内存小,效率高等特点,即使配置较差的电脑,也能使用该方法导入大型 Excel 文档。

4. 参考资料

  • 王舒瑶,连享会推文,Stata数据处理:超大Excel文档如何读入
  • 专题:Stata教程
    • Stata-Python交互-9:将python数据导入Stata
    • Stata-Python交互-8:将Stata数据导入Python
  • 专题:数据处理
    • Stata数据处理:FRED数据导入问题的解决方案


🍓 课程推荐:2024 政策优化和机制分析专题
主讲老师:杨海生 (中山大学)
课程时间:2024 年 8 月 8-10 日 (三天)
授课地点:西安 · 西北工业大学 (线下授课)

New! Stata 搜索神器:lianxh 和 songbl GIF 动图介绍
搜: 推文、数据分享、期刊论文、重现代码 ……
👉 安装:
  . ssc install lianxh
  . ssc install songbl
👉 使用:
  . lianxh DID 倍分法
  . songbl all

🍏 关于我们

  • 连享会 ( www.lianxh.cn,推文列表) 由中山大学连玉君老师团队创办,定期分享实证分析经验。
  • 直通车: 👉【百度一下: 连享会】即可直达连享会主页。亦可进一步添加 「知乎」,「b 站」,「面板数据」,「公开课」 等关键词细化搜索。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/172595
 
184 次点击