查看原文
其他

超好用的字符串方法

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

本文作者:王玉洁,中南财经政法大学金融学院

本文编辑:胡艺粼

技术总编:孙一博

Stata and Python 数据分析

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


购书链接:

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

大家在进行一些网络爬虫时,无可避免地要对字符串进行一些处理和操作,小编今天为大家带来了超好用的字符串方法,包含字符串的查找、截取、替换和运算,一起来看看吧!


小编从超好看的电影《阿甘正传》中找了一句很经典的话作为字符串作为例子进行展示,str1为中文字符串,str2为英文字符串。

str1 = "生活就像一盒巧克力,结果往往出人意料。"str2 = "Life was like a box of chocolates,you never know what you are gonna get."01索引位置的查找

使用find或者index命令可以查找某个字符串的索引位置。在使用find进行查找时,如果所查找的元素存在,则返回一个索引值,如果不存在,则返回-1,如果查找的是一个子字符串,则返回值为所查找字符串第一个字符的索引值;而在使用index查找时,如果查找的元素存在,返回一个索引值,如果不存在则会报错。具体查找的程序如下:

a=str2.find("L") #b存在,则返回一个索引值。print(a)a=str2.find("z") #z不存在,则返回-1print(a)print(str2.find("was")) #如果查找的是一个字符串,则返回值是所查找字符串第一个字符的索引值
a=str2.index("L")print(a)a=str2.index("z") #如果查找不到要找的字符时,使用index会报错print(a)

运行结果如下:


02出现次数的查找

如果我们想要知道某个字符或字符串出现了几次,则可以使用count命令进行查找。以下是具体的查找程序:

count=str1.count("往")print(count)count=str1.count("往往")print(count)count=str2.count("o")print(count)count=str2.count("chocolate")print(count)count=str2.count("chocolates")print(count)

如果所查找的元素存在,则返回出现次数,如果元素不存在,则次数为0。运行结果如下:


首先,这里想要将str1中的字符串“巧克力”截取出来,有两种方法:第一种是分别查出“巧克力”三个字的索引值然后相加即可将想要的字符串截取出来;另一种方法是使用str[索引值A:索引值B],将字符串从索引值为A的字符截取到索引值为B-1的字符,索引值的截取,遵循左闭右开区间,具体程序如下:

#字符串的截取方法print(str1[6]+str1[7]+str1[8]) #将str1中的巧克力截取出来print(str1[6:9]) #将字符串从索引值为6的字符截取到索引值为9-1的字符

运行结果如下:


在使用第二种str[索引值A:索引值B]截取字符串时,如果索引值A为空,则是从字符串的最开始一直截取到索引值为B-1的字符结束;如果索引值B为空,则是从索引值为A的字符开始截取一直到字符串末尾结束;如果A和B都是空,则是截取整条字符串。

print(str1[:9]) #从字符串最开始截取一直到索引值为9-1的字符结束print(str1[6:]) #从索引值为6的字符开始截取,一直截取到最末尾print(str1[:]) #从最开始一直截取到最后

运行结果如下:


01指定字符串的替换

在替换指定字符串时可以使用replace命令,具体的使用方法我们这里还是利用小例子进行说明,话不多说,上程序了:

newstr=str1.replace("巧克力","糖果")print(newstr)newstr=str2.replace("a","A",3) #替换次数print(newstr)

这里想要将str1中的巧克力替换为糖果,使用replace命令时,括号中的第一个参数为要替换的值,第二个参数是替换成的值。接着,想要将a替换为A时,第一、二个参数与上述所说的一致,第三个参数为替换的次数,即replace("要替换的","替换成的","替换次数")。运行结果如下:


02大小写的替换

替换大小写的方法有很多,这里总结了以下几种方式:

- capitalize:只将字符串中第一个单词的首字母大写

- title:将字符串中每个单词的首字母都大写

- upper:将所有字母都转换为大写

- lower:将所有字母都转化为小写

- casefold:将所有字母都转化为小写

具体的使用方法这里还是用一个小例子来说明:

str3="I love Chinese china which is made in China."print(str3.capitalize())print(str3.title())print(str3.upper())print(str3.lower())print(str3.casefold())

运行结果如下:

我们可以看到,lowercasefold将所有字母都转化为了小写,不同之处在于lower只能将英文的26个字母进行转换,而casefold能够转化的范围更大,在其他分大小写的语言中也能进行转换。


01算数运算符

字符串的算数运算符包括:+*,具体用法这里还是使用一个小例子来说明:

str4="我喜欢爬虫俱乐部,"str5="你也喜欢爬虫俱乐部"print(str4+str5)print(2*str5)

运行结果如下:

由此可见,“+”可以使得两个字符串相连,“*”可以使得字符串重复相应的倍数。


02比较运算符

字符串也是可以比较大小的,这里比较大小的方式是逐个比较两个字符串相应位置字符的ASCII码大小,比如:

print("abc" < "abd") # 逐个比较两个字符串相应位置字符的ASCII码大小print("abc" == "aqbc") # 比较两个字符串的内容是否相同

运行结果如下:


03成员运算符

in是字符串的成员运算符,它用于判断一个字符串是否在另一个字符串内出现,比如:

print("aqb" in "abc")print("abc" in "abcd")

运行结果如下:

aqb没有在abc中出现,因此返回值为False;而abc在abcd中出现了,因此返回值为True。

以上就是这期字符串方法介绍的全部内容了,是不是很好用呢,那就赶紧试试吧!

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

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


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




往期推文推荐  那些爬虫俱乐部开发的命令       Python爬取研招网专业目录信息
      论文检索与翻译神器——songbl      一文搞清楚Python函数的参数       Stata爬豆瓣和烂番茄——国内外的观影口味果然大不同       邮箱附件太多?Python帮你批量下载!      正则表达式之多次匹配

        爬虫君为你的数据自由操碎了心!cnborder重磅推出!

      基于Python的假设检验实现      Stata与MySQL交互--基础操作           Jupyter Notebook中的魔术命令     《Stata正则表达式》由中国金融出版社出版发行          匿名函数lambda到底怎么用?

Stata绘图系列—NBER Working paper仿图

       Camelot:从PDF中提取表格数据      Stata之计算财务指标——融资约束

      列表生成式|让你的代码更简洁

Stata绘图系列——玩转绘图通用选项之坐标轴

       玩转地图的好帮手--pyecharts

      爬虫俱乐部又又又输送了一位研究助理!!!     关于我们 

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

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



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

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

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


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

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