初识PyStata
本文作者:薛 原
本文编辑:刘子艳
技术总编:戴 雯
Stata&Python云端课程来啦!
好雨知时节,当春乃发生。为了感谢大家长久以来的支持和信任,爬虫俱乐部为大家送福利啦!!!Stata&Python特惠课程双双上线腾讯课堂~原价2400元的Python编程培训课程,现在仅需100元,详情请查看推文《Python云端课程福利大放送!0基础也能学~》。关于Stata,爬虫俱乐部推出了系列课程,内容包括字符串函数、正则表达式、爬虫专题和文本分析,可以随心搭配,价格美丽,物超所值,更多信息可查看Stata系列推文《与春天有个约会,爬虫俱乐部重磅推出正则表达式网络课程!》、《与春天有个约会,爬虫俱乐部重磅推出基本字符串函数网络课程》等。变的是价格,不变的是课程质量和答疑服务。对报名有任何疑问欢迎在公众号后台和腾讯课堂留言哦!
在这里我们主要介绍如何在Python环境中调用Stata~
在多年前,现为华盛顿大学会计系助理教授的Ties de Kok就已经推出了ipystata程序包,实现了在Jupyter中调用Stata。例如在Jupyter中我们通过ipystata调用Stata,读入auto数据,并用list命令展示make变量到weight变量的内容:
import ipystata
from ipystata.config import config_stata
config_stata("D:/Stata17/StataMP-64.exe")
%%stata
sysuse auto, clear
list make - weight
pip install stata_setup
安装完毕后,我们就可以在Python环境中初始化Stata,以我电脑上的Stata17为例,安装路径是在D:/Stata17,安装的是MP版本,在Spyder中初始化Stata的程序如下:
import stata_setup
stata_setup.config("D:/Stata17/", "mp")
from pystata import stata
stata.run('''
sysuse auto, clear
list make - weight
''')
除了使用stata模块外,我们还可以在IPython和Jupyter中使用magic commands——即ipystata例子中%%stata的形式——直接运行Stata命令:
在Python环境中调用Stata也可以进一步降低Stata和Python中各种包之间的壁垒。在2019年Stata16推出后,我们能够在Stata中调用Python,但也有人指出美中不足的一点是当我们要把用Python处理好的数据导回到Stata中时,只能够将数据放在列表中,通过sfi包的Data模块导入,无法直接将DataFrame形式的数据直接转换到Stata中。但现在我们在Python环境中能直接通过pystata包的stata模块把DataFrame转换成Stata的数据。
import stata_setup
stata_setup.config("D:/Stata17/", "mp")
import pandas as pd
from pystata import stata
data = {
"姓名": ["张三", "李四", "王五", "赵六"],
"分数": [94, 93, 90, 85]
}
df = pd.DataFrame(data)
stata.pdataframe_to_data(df, True)
stata.run('''
list
''')
import stata_setup
stata_setup.config("D:/Stata17/", "mp")
import pandas as pd
data = {
"姓名": ["张三", "李四", "王五", "赵六"],
"分数": [94, 93, 90, 85]
}
df = pd.DataFrame(data)
%%stata -d df
list
在今后的推文中,我们会继续介绍PyStata更多更强大的功能。在Python中我们随心所欲地插入Stata和Mata程序。你的程序,想怎么写就怎么写!
最后,我们为大家揭秘雪球网(https://xueqiu.com/)最新所展示的沪深证券和港股关注人数增长Top10。
对我们的推文累计打赏超过1000元,我们即可给您开具发票,发票类别为“咨询费”。用心做事,不负您的支持!
辞旧迎新——Stata17之Do-file编辑器优化
Stata17新亮点——解放表格输出生产力
【爬虫+可视化】链家网北京租房信息
手把手教你如何获取股票数据和可视化
Countvalues——数数的超级小帮手
下拉选择框如何变成“小猫咪” | selenium小技巧
Python中的运算符知多少?
快来get缺失值的正确打开方式
如何使用Pandas读取txt文件?
基于MySQL数据库实现增量式爬取
寻找春日气息|本月最受欢迎的景点都在这里!
问世间情为何物,大数据也想参悟——后考研时代,何以解忧?唯有数据!
Python与数据库交互—浅述pymysql
偷懒小妙招|selenium之玩转鼠标键盘操作--鼠标篇
大家用Stata来“找茬”
“粉墨登场”——多期双重差分法(DID)的Stata操作
Python与百度地图合璧,绘制棒呆的热力地图
【数据可视化】统计图绘制神器:Seaborn
检索Stata推文的“任意门”学会了这些,分分钟提升你的毕业体验【爬虫实战】双一流大学的月关注度
【爬虫实战】“中国人不吃这一套”——人民日报微博评论分析
进化的标签管理助手——elabel命令“学术明星”——双重差分法(DID)的Stata操作
关于我们
微信公众号“Stata and Python数据分析”分享实用的Stata、Python等软件的数据处理知识,欢迎转载、打赏。我们是由李春涛教授领导下的研究生及本科生组成的大数据处理和分析团队。
此外,欢迎大家踊跃投稿,介绍一些关于Stata和Python的数据处理和分析技巧。
投稿邮箱:statatraining@163.com投稿要求:
1)必须原创,禁止抄袭;
2)必须准确,详细,有例子,有截图;
注意事项:
1)所有投稿都会经过本公众号运营团队成员的审核,审核通过才可录用,一经录用,会在该推文里为作者署名,并有赏金分成。
2)邮件请注明投稿,邮件名称为“投稿+推文名称”。
3)应广大读者要求,现开通有偿问答服务,如果大家遇到有关数据处理、分析等问题,可以在公众号中提出,只需支付少量赏金,我们会在后期的推文里给予解答。