查看原文
其他

爬虫俱乐部精彩答疑之特殊日期数据提取

爬虫俱乐部 Stata and Python数据分析 2023-10-24

本文作者:赵一帆,中南财经政法大学金融学院

本文编辑:王思雨

技术总编:李婷婷

Stata and Python 数据分析

     由李春涛教授团队成员司海涛薛原编写的《Stata正则表达式及其在财务数据中的应用》终于和大家见面啦!爬虫俱乐部特此为大家准备了100本,即日起购买爬虫俱乐部课程,可赠送本书一本,先到先得!


购书链接:

爬虫俱乐部Stata基础课程Stata进阶课程Python课程可在小鹅通平台查看,欢迎大家多多支持订阅!如需了解详情,可以通过课程链接(https://appbqiqpzi66527.h5.xiaoeknow.com/homepage/10)或课程二维码进行访问哦~
1导读

内容好讲得好,不如答疑好!优秀的答疑将会让同学们在学习的路上少走很多弯路,将时间充分利用起来!同学们学习热情高涨,有时遇到学习Stata和Python软件过程中的问题时,将自己的问题发送到答疑群里,我们爬虫俱乐部答疑团队会在第一时间对于学员的问题进行详细的解答!

2答疑群内的精彩答疑这里有李春涛教授坐镇亲自解惑、网课老师悉心指导、还有专职答疑老师的及时解答,学员之间相互交流、共同进步。我们提供学员间共同学习进步的学习环境和专业、强大、负责、高效和细致入微的答疑服务,为你的科研提供强有力的保障!

3答疑精彩案例分享

这位学员的问题是将上图所示审计日期的变量,提取出审计日期变量包含的年、月和日。那么这个问题该如何处理呢?我们一般导入Stata的日期数据都是字符型,例如导入从CSMAR数据库下载的数据,需要将其转化为Stata可识别的时间变量。对于字符型日期数据,可以先使用date()函数将字符型数据转化为数值型时间变量,便可以使用year()、quarter()、month()、week()等函数提取日期型变量对应在哪一年,哪一季度,哪一月,哪一周的具体信息。具体的小例子可以参考我们之前发送的推文《日期数据处理》~
clearinput str30 date1"01/01/2020""02 02 2019""03032018"endgen d = date(date1,"MDY")format d %tdCY-N-D这时输出的结果是:

但是这位学员碰到的例子中该日期中全是汉字,且存在汉字如何转为数字的问题。我们爬虫俱乐部的李教授就提供了一个启发性的思路,使用字符串函数subinstr()去进行字符串的替换,分别把汉字的〇到九替换为数字的0-9,对于特殊的〇替换2次。

具体代码如下:
clear all use "E:\日期.dta",replacerename 审结日期 datereplace date = subinstr(date,"〇","0",.)replace date = subinstr(date,"O","0",.)replace date = subinstr(date,"一","1",.)replace date = subinstr(date,"二","2",.)replace date = subinstr(date,"三","3",.)replace date = subinstr(date,"四","4",.)replace date = subinstr(date,"五","5",.)replace date = subinstr(date,"六","6",.)replace date = subinstr(date,"七","7",.)replace date = subinstr(date,"八","8",.)replace date = subinstr(date,"九","9",.)经过学员的自行操作,该数据变为了如下形式:

日期变量经过多次替换,仍然存在汉字“十”的特殊处理问题,团队的优秀答疑老师为学员继续提供思路,使用正则表达式进行下一轮细致的替换。“十”后面有数字的话应该替换为“1”,“十”前面有数字的话替换为0,“十”前后都有数字的话应该替换为空。ps.正则表达式的介绍可以参考推文《强大的正则表达式》,同时由李春涛教授和团队成员司海涛、薛原编写的《Stata正则表达式及其在财务数据中的应用》终于和大家见面啦!大家也可以购买图书进行更加深入地学习,文章最上方有购书链接哦~具体实现的代码如下:
split date,p("年""月""日")*替换月份replace date2= ustrregexra(date2,"十","1") if ustrregexm(date2,"十[0-9]")replace date2= ustrregexra(date2,"十","10")*替换日期replace date3= ustrregexra(date3,"十","0") if ustrregexm(date3,"[0-9]十日") replace date3= ustrregexra(date3,"十","") if ustrregexm(date3,"[0-9]十[0-9]")replace date3= ustrregexra(date3,"十","10") if ustrregexm(date3,"十日")replace date3= ustrregexra(date3,"十","1")最终得出了需要的结果,依靠正则表达式这一工具,学员的问题得以快速处理!

以上就是本次分享的精彩答疑案例了,希望我们挑选出的案例对大家有所启发和帮助。最后,欢迎大家报名参与我们的课程学习,爬虫俱乐部将为您提供的零基础、无障碍的Stata数据分析和网络爬虫课程,更重要的是,讲得好不如答疑答得好!我们高效、强大、负责的答疑团队,将为您提供认真负责,细致入微的答疑服务。在这里,您的学习效率和效果将成倍提升,一站式购买,无后顾之忧。


END
重磅福利!为了更好地服务各位同学的研究,爬虫俱乐部将在小鹅通平台上持续提供金融研究所需要的各类指标,包括上市公司十大股东、股价崩盘、投资效率、融资约束、企业避税、分析师跟踪、净资产收益率、资产回报率、国际四大审计、托宾Q值、第一大股东持股比例、账面市值比、沪深A股上市公司研究常用控制变量等一系列深加工数据,基于各交易所信息披露的数据利用Stata在实现数据实时更新的同时还将不断上线更多的数据指标。我们以最前沿的数据处理技术、最好的服务质量、最大的诚意望能助力大家的研究工作!相关数据链接,请大家访问:(https://appbqiqpzi66527.h5.xiaoeknow.com/homepage/10)或扫描二维码:

最后,我们为大家揭秘雪球网(https://xueqiu.com/)最新所展示的沪深证券和港股关注人数增长Top10。


对我们的推文累计打赏超过1000元,我们即可给您开具发票,发票类别为“咨询费”。用心做事,不负您的支持!






往期推文推荐             hk系列命令(3)—— hktrade         hk系列命令(2)—— hkar
  hk系列命令(1)—— hkstock
  超好用的字符串方法  基于Python的假设检验实现  Stata与MySQL交互--基础操作       Jupyter Notebook中的魔术命令 《Stata正则表达式》由中国金融出版社出版发行      匿名函数lambda到底怎么用?  Stata绘图系列—NBER Working paper仿图   Camelot:从PDF中提取表格数据   Stata之计算财务指标——融资约束   列表生成式|让你的代码更简洁  Stata绘图系列——玩转绘图通用选项之坐标轴

玩转地图的好帮手--pyecharts

  爬虫俱乐部又又又输送了一位研究助理!!! 【数据分析】一文教你玩转DataFrame  震惊,爬虫俱乐部竟是这样运营答疑群的?! 【数据分析-入门】一看就会!Numpy的创建、索引、切片与更新  带你玩转Stata编码  一言不合就teamviewer







     关于我们 

   微信公众号“Stata and Python数据分析”分享实用的Stata、Python等软件的数据处理知识,欢迎转载、打赏。我们是由李春涛教授领导下的研究生及本科生组成的大数据处理和分析团队。

   武汉字符串数据科技有限公司一直为广大用户提供数据采集和分析的服务工作,如果您有这方面的需求,请发邮件到statatraining@163.com,或者直接联系我们的数据中台总工程司海涛先生,电话:18203668525,wechat: super4ht。海涛先生曾长期在香港大学从事研究工作,现为知名985大学的博士生,爬虫俱乐部网络爬虫技术和正则表达式的课程负责人。



此外,欢迎大家踊跃投稿,介绍一些关于Stata和Python的数据处理和分析技巧。

投稿邮箱:statatraining@163.com投稿要求:1)必须原创,禁止抄袭;2)必须准确,详细,有例子,有截图;注意事项:1)所有投稿都会经过本公众号运营团队成员的审核,审核通过才可录用,一经录用,会在该推文里为作者署名,并有赏金分成。

2)邮件请注明投稿,邮件名称为“投稿+推文名称”。3)应广大读者要求,现开通有偿问答服务,如果大家遇到有关数据处理、分析等问题,可以在公众号中提出,只需支付少量赏金,我们会在后期的推文里给予解答。



您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存