发布时间:2025-12-11 01:43:08 浏览次数:2
Series.str.extract(pat, flags=0, expand=None)
参数:
pat : 字符串或正则表达式
flags : 整型,
expand : 布尔型,是否返回数据框
Returns:
数据框dataframe/索引index
Series.str.extractall(pat, flags=0)
参数:
pat : 字符串或正则表达式
flags : 整型
返回值:
DataFrame(数据框)
#如果提取的规则结果有多组,则会返回数据框,不匹配的返回NaNIn[32]:pd.Series(['a1','b2','c3']).str.extract('([ab])(\d)',expand=False)Out[32]:010a11b22NaNNaN#注意正则表达式中的任何捕获组名称将用于列名,否则捕获的组名将被当作列名In[33]:pd.Series(['a1','b2','c3']).str.extract('(?P<letter>[ab])(?P<digit>\d)',expand=False)Out[33]:letterdigit0a11b22NaNNaN#参数expand=True在一组返回值的情况下,返回数据框In[35]:pd.Series(['a1','b2','c3']).str.extract('[ab](\d)',expand=True)Out[35]:001122NaN#参数expand=False在一组返回值的情况下,返回序列(Series)In[36]:pd.Series(['a1','b2','c3']).str.extract('[ab](\d)',expand=False)Out[36]:01122NaNdtype:object#参数expand=True作用在索引上时,一组数据返回数据框In[37]:s=pd.Series(["a1","b2","c3"],["A11","B22","C33"])In[38]:sOut[38]:A11a1B22b2C33c3dtype:objectIn[39]:s.index.str.extract("(?P<letter>[a-zA-Z])",expand=True)Out[39]:letter0A1B2C#参数expand=False作用在索引上时,一组数据返回索引In[40]:s.index.str.extract("(?P<letter>[a-zA-Z])",expand=False)Out[40]:Index([u'A',u'B',u'C'],dtype='object',name=u'letter')#下图表示了在expand=False时,各种情况下index,Series返回值的情况1group>1groupIndexIndexValueErrorSeriesSeriesDataFrame5.#提取所有匹配的字符串#extract只返回第一个匹配到的字符In[42]:s=pd.Series(["a1a2","b1","c1"],index=["A","B","C"])In[43]:sOut[43]:Aa1a2Bb1Cc1dtype:objectIn[44]:two_groups='(?P<letter>[a-z])(?P<digit>[0-9])'In[45]:s.str.extract(two_groups,expand=True)Out[45]:letterdigitAa1Bb1Cc1#extractall将匹配所有返回的字符In[46]:s.str.extractall(two_groups)Out[46]:letterdigitmatchA0a11a2B0b1C0c1关于 Pandas中extract( ) 和extractall( ) 方法如何使用问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注本站行业资讯频道了解更多相关知识。