|
目录一、用法精讲336、pandas.Series.str.rpartition方法336-1、语法336-2、参数336-3、功能336-4、返回值336-5、说明336-6、用法336-6-1、数据准备336-6-2、代码示例336-6-3、结果输出337、pandas.Series.str.slice方法337-1、语法337-2、参数337-3、功能337-4、返回值337-5、说明337-6、用法337-6-1、数据准备337-6-2、代码示例337-6-3、结果输出338、pandas.Series.str.slice_replace方法338-1、语法338-2、参数338-3、功能338-4、返回值338-5、说明338-6、用法338-6-1、数据准备338-6-2、代码示例338-6-3、结果输出339、pandas.Series.str.split方法339-1、语法339-2、参数339-3、功能339-4、返回值339-5、说明339-6、用法339-6-1、数据准备339-6-2、代码示例339-6-3、结果输出340、pandas.Series.str.rsplit方法340-1、语法340-2、参数340-3、功能340-4、返回值340-5、说明340-6、用法340-6-1、数据准备340-6-2、代码示例340-6-3、结果输出 二、推荐阅读1、Python筑基之旅2、Python函数之旅3、Python算法之旅4、Python魔法之旅5、博客个人主页一、用法精讲336、pandas.Series.str.rpartition方法336-1、语法#336、pandas.Series.str.rpartition方法pandas.Series.str.rpartition(sep='',expand=True)Splitthestringatthelastoccurrenceofsep.Thismethodsplitsthestringatthelastoccurrenceofsep,andreturns3elementscontainingthepartbeforetheseparator,theseparatoritself,andthepartaftertheseparator.Iftheseparatorisnotfound,return3elementscontainingtwoemptystrings,followedbythestringitself.Parameters:sepstr,defaultwhitespaceStringtospliton.expandbool,defaultTrueIfTrue,returnDataFrame/MultiIndexexpandingdimensionality.IfFalse,returnSeries/Index.ReturnsataFrame/MultiIndexorSeries/Indexofobjects.336-2、参数336-2-1、sep(可选,默认值为''):字符串,用作分隔符的字符串,你可以设置为任何字符串,作为切割的依据。336-2-2、expand(可选,默认值为True):布尔值,如果为True,返回一个DataFrame,其中每一列分别对应分隔符前、分隔符和分隔符后的部分;如果为False,返回一个Series,其中每个元素是一个包含三部分的元组。336-3、功能 从右侧开始查找指定的分隔符,将字符串分为三部分。对于每个字符串,它会查找最后一次出现的分隔符,将字符串分割成以下三部分:分隔符前的部分分隔符本身分隔符后的部分336-4、返回值 如果expand=True,返回一个DataFrame,包含三列,分别是分隔符前的部分、分隔符、分隔符后的部分;如果expand=False,返回一个Series,每个元素是一个包含上述三部分的元组。336-5、说明 使用场景:336-5-1、数据清洗与处理:在数据清洗过程中,常常需要从字符串中提取特定信息,比如从文件路径中提取文件名或文件扩展名,可以使用rpartition方法找到最后一个斜杠,并将路径分割成目录和文件。336-5-2、文本分析:在进行文本分析时,可能需要从句子中提取特定的词或字符串段,例如,获取最后一个单词和其之前的部分,这在处理评论、反馈等用户生成内容时尤其有用。336-5-3、分割复合数据:在某些情况下,字符串可能包含用特定字符分隔的复合数据(如“键:值”对),使用rpartition可以方便地将其分成键和值。336-6、用法336-6-1、数据准备无336-6-2、代码示例#336、pandas.Series.str.rpartition方法#336-1、数据清洗(提取文件名)importpandasaspd#示例数据file_paths=pd.Series(['/home/user/documents/report.pdf','/var/www/html/index.html','/tmp/example.txt'])#使用rpartition提取文件名file_names=file_paths.str.rpartition('/')[2]print("提取的文件名:")print(file_names,end='\n\n')#336-2、文本分析(提取最后一个单词)importpandasaspd#示例数据sentences=pd.Series(['Thequickbrownfox','jumpsoverthelazydog','Helloworld'])#提取最后一个单词last_words=sentences.str.rpartition('')[2]print("提取的最后一个单词:")print(last_words,end='\n\n')#336-3、分割复合数据(提取键和值)importpandasaspd#示例数据key_value_pairs=pd.Series(['name:Alice','age:30','city:NewYork'])#提取键和值keys=key_value_pairs.str.rpartition(':')[0]values=key_value_pairs.str.rpartition(':')[2]print("提取的键:")print(keys)print("提取的值:")print(values)336-6-3、结果输出#336、pandas.Series.str.rpartition方法#336-1、数据清洗(提取文件名)#提取的文件名:#0report.pdf#1index.html#2example.txt#Name:2,dtypebject#336-2、文本分析(提取最后一个单词)#提取的最后一个单词:#0fox#1dog#2world#Name:2,dtypebject#336-3、分割复合数据(提取键和值)#提取的键:#0name#1age#2city#Name:0,dtypebject#提取的值:#0Alice#130#2NewYork#Name:2,dtypebject337、pandas.Series.str.slice方法337-1、语法#337、pandas.Series.str.slice方法pandas.Series.str.slice(start=None,stop=None,step=None)SlicesubstringsfromeachelementintheSeriesorIndex.Parameters:startint,optionalStartpositionforsliceoperation.stopint,optionalStoppositionforsliceoperation.stepint,optionalStepsizeforsliceoperation.Returns:SeriesorIndexofobjectSeriesorIndexfromslicedsubstringfromoriginalstringobject.337-2、参数337-2-1、start(可选,默认值为None):整数或None,指定要开始切片的位置索引,索引从0开始,如果未指定或为None,则默认从字符串的起始位置开始。337-2-2、stop(可选,默认值为None):整数或None,指定切片结束的位置索引,切片不包括该位置的字符,如果未指定或为None,则默认切到字符串的末尾。337-2-3、step(可选,默认值为None):整数或None,指定步长,默认为None,即步长为1;步长为负数时,可以进行反向切片。337-3、功能 用于从Series中的每个字符串中根据指定的索引范围提取子字符串,它允许你通过指定起始位置、结束位置和步长来精确控制提取的部分。337-4、返回值 返回Series或Index,具体取决于输入数据的类型:返回值是一个与原Series长度相同的新Series,其中包含根据指定的start、stop和step提取的子字符串。如果某个字符串的长度小于start,该位置返回一个空字符串。337-5、说明 无337-6、用法337-6-1、数据准备无337-6-2、代码示例#337、pandas.Series.str.slice方法importpandasaspd#示例数据s=pd.Series(['apple','banana','cherry','date'])#从索引1开始切片到索引4(不包括4)result_slice=s.str.slice(start=1,stop=4)#仅指定步长为2,默认从头到尾result_step=s.str.slice(step=2)#反向切片,步长为-1result_reverse=s.str.slice(start=4,stop=0,step=-1)print("从索引1到4切片:")print(result_slice)print("\n每隔一个字符切片:")print(result_step)print("\n反向切片:")print(result_reverse)337-6-3、结果输出#337、pandas.Series.str.slice方法#从索引1到4切片:#0ppl#1ana#2her#3ate#dtypebject##每隔一个字符切片:#0ape#1bnn#2cer#3dt#dtypebject##反向切片:#0elpp#1nana#2rreh#3eta#dtypebject338、pandas.Series.str.slice_replace方法338-1、语法#338、pandas.Series.str.slice_replace方法pandas.Series.str.slice_replace(start=None,stop=None,repl=None)Replaceapositionalsliceofastringwithanothervalue.Parameters:startint,optionalLeftindexpositiontousefortheslice.Ifnotspecified(None),thesliceisunboundedontheleft,i.e.slicefromthestartofthestring.stopint,optionalRightindexpositiontousefortheslice.Ifnotspecified(None),thesliceisunboundedontheright,i.e.sliceuntiltheendofthestring.replstr,optionalStringforreplacement.Ifnotspecified(None),theslicedregionisreplacedwithanemptystring.Returns:SeriesorIndexSametypeastheoriginalobject.338-2、参数338-2-1、start(可选,默认值为None):整数或None,指定开始切片的索引位置,索引从0开始,如果不指定(即为None),默认从字符串的开头开始切片。338-2-2、stop(可选,默认值为None):整数或None,指定结束切片的索引位置(不包括该位置),如果不指定(即为None),默认一直切到字符串的末尾。338-2-3、repl(可选,默认值为None):字符串或None,指定要替换切片部分的字符串,repl将取代原字符串从start到stop位置的内容。338-3、功能 用于对字符串序列的某一部分进行替换操作,你可以指定从哪个位置开始(start),到哪个位置结束(stop),然后用指定的字符串(repl)来替换这部分内容,该方法不会改变原序列,而是返回一个新的序列,其中包含替换后的字符串。338-4、返回值 返回一个pandas.Series对象,包含处理后的字符串序列,原序列中的每一个字符串都会根据指定的start、stop和repl参数进行相应的替换操作。338-5、说明 无338-6、用法338-6-1、数据准备无338-6-2、代码示例#338、pandas.Series.str.slice_replace方法importpandasaspd#示例数据data=pd.Series(['abcdefg','hijklmn','opqrstu'])#使用str.slice_replace()方法result=data.str.slice_replace(start=2,stop=5,repl='XYZ')print(result)338-6-3、结果输出#338、pandas.Series.str.slice_replace方法#0abXYZfg#1hiXYZmn#2opXYZtu#dtypebject339、pandas.Series.str.split方法339-1、语法#339、pandas.Series.str.split方法pandas.Series.str.split(pat=None,*,n=-1,expand=False,regex=None)Splitstringsaroundgivenseparator/delimiter.SplitsthestringintheSeries/Indexfromthebeginning,atthespecifieddelimiterstring.Parameters:patstrorcompiledregex,optionalStringorregularexpressiontospliton.Ifnotspecified,splitonwhitespace.nint,default-1(all)Limitnumberofsplitsinoutput.None,0and-1willbeinterpretedasreturnallsplits.expandbool,defaultFalseExpandthesplitstringsintoseparatecolumns.IfTrue,returnDataFrame/MultiIndexexpandingdimensionality.IfFalse,returnSeries/Index,containinglistsofstrings.regexbool,defaultNoneDeterminesifthepassed-inpatternisaregularexpression:IfTrue,assumesthepassed-inpatternisaregularexpressionIfFalse,treatsthepatternasaliteralstring.IfNoneandpatlengthis1,treatspatasaliteralstring.IfNoneandpatlengthisnot1,treatspatasaregularexpression.CannotbesettoFalseifpatisacompiledregexNewinversion1.4.0.Returns:Series,Index,DataFrameorMultiIndexTypematchescallerunlessexpand=True(seeNotes).Raises:ValueErrorifregexisFalseandpatisacompiledregex.339-2、参数339-2-1、pat(可选,默认值为None):字符串或None,指定用于分割字符串的分隔符,如果不指定(即为None),默认按照空白字符(包括空格、制表符等)进行分割;如果指定了regex=True,则pat被解释为正则表达式。339-2-2、n(可选,默认值为-1):整数或None,指定最多分割的次数,如果为-1(默认值),则不限制分割次数,即分割所有出现的分隔符。339-2-3、expand(可选,默认值为False):布尔值,是否将分割结果展开为一个DataFrame,若为True,返回一个DataFrame,每个拆分的部分作为一列;若为False(默认值),返回一个Series,其中每个元素是一个列表,包含分割后的字符串部分。339-2-4、regex(可选,默认值为None):布尔值或None,是否将pat解释为正则表达式,如果为None(默认值),则会根据pat是否为正则表达式自动判断;如果为True,则强制将pat解释为正则表达式。339-3、功能 用于将字符串按照指定的分隔符拆分为多个部分,你可以控制分割的次数以及是否将结果展开为多列。339-4、返回值 如果expand=False(默认值),返回一个pandas.Series对象,其中每个元素是一个列表,包含分割后的字符串部分;如果expand=True,返回一个pandas.DataFrame对象,其中每列对应分割后的字符串部分。339-5、说明 无339-6、用法339-6-1、数据准备无339-6-2、代码示例#339、pandas.Series.str.split方法importpandasaspd#示例数据data=pd.Series(['a,b,c','d,e,f','g,h,i'])#不展开结果,只分割一次result1=data.str.split(",",n=1,expand=False)#展开结果为多列result2=data.str.split(",",expand=True)print("Resultwithexpand=False:")print(result1)print("\nResultwithexpand=True:")print(result2)339-6-3、结果输出#339、pandas.Series.str.split方法#Resultwithexpand=False:#0[a,b,c]#1[d,e,f]#2[g,h,i]#dtypebject##Resultwithexpand=True:#012#0abc#1def#2ghi340、pandas.Series.str.rsplit方法340-1、语法#340、pandas.Series.str.rsplit方法pandas.Series.str.rsplit(pat=None,*,n=-1,expand=False)Splitstringsaroundgivenseparator/delimiter.SplitsthestringintheSeries/Indexfromtheend,atthespecifieddelimiterstring.Parameters:patstr,optionalStringtospliton.Ifnotspecified,splitonwhitespace.nint,default-1(all)Limitnumberofsplitsinoutput.None,0and-1willbeinterpretedasreturnallsplits.expandbool,defaultFalseExpandthesplitstringsintoseparatecolumns.IfTrue,returnDataFrame/MultiIndexexpandingdimensionality.IfFalse,returnSeries/Index,containinglistsofstrings.Returns:Series,Index,DataFrameorMultiIndexTypematchescallerunlessexpand=True(seeNotes).340-2、参数340-2-1、pat(可选,默认值为None):字符串或None,指定用于分割字符串的分隔符,如果不指定(即为None),默认按照空白字符(包括空格、制表符等)进行分割;如果指定了regex=True,则pat被解释为正则表达式。340-2-2、n(可选,默认值为-1):整数或None,指定最多分割的次数,从右侧开始,如果为-1(默认值),则不限制分割次数,即分割所有出现的分隔符。340-2-3、expand(可选,默认值为False):布尔值,是否将分割结果展开为一个DataFrame,若为True,返回一个DataFrame,每个拆分的部分作为一列;若为False(默认值),返回一个Series,其中每个元素是一个列表,包含分割后的字符串部分。340-3、功能 用于将字符串从右侧开始按照指定的分隔符拆分为多个部分,你可以控制分割的次数以及是否将结果展开为多列,与split()方法不同的是,rsplit()从右向左进行分割,这在处理末尾部分的固定格式或逆序字符串时特别有用。340-4、返回值 如果expand=False(默认值),返回一个pandas.Series对象,其中每个元素是一个列表,包含从右侧开始分割后的字符串部分;如果expand=True,返回一个pandas.DataFrame对象,其中每列对应从右侧分割后的字符串部分。340-5、说明 无340-6、用法340-6-1、数据准备无340-6-2、代码示例#340、pandas.Series.str.rsplit方法importpandasaspd#示例数据data=pd.Series(['a,b,c','d,e,f','g,h,i'])#不展开结果,只从右侧分割一次result1=data.str.rsplit(",",n=1,expand=False)#从右侧展开结果为多列result2=data.str.rsplit(",",expand=True)print("Resultwithexpand=False:")print(result1)print("\nResultwithexpand=True:")print(result2)340-6-3、结果输出#340、pandas.Series.str.rsplit方法#Resultwithexpand=False:#0[a,b,c]#1[d,e,f]#2[g,h,i]#dtypebject##Resultwithexpand=True:#012#0abc#1def#2ghi 二、推荐阅读1、Python筑基之旅2、Python函数之旅3、Python算法之旅4、Python魔法之旅5、博客个人主页
|
|