溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Pandas中extract( ) 和extractall( ) 方法如何使用

發(fā)布時(shí)間:2021-08-11 14:26:29 來(lái)源:億速云 閱讀:312 作者:Leah 欄目:云計(jì)算

Pandas中extract( ) 和extractall( ) 方法如何使用,針對(duì)這個(gè)問(wèn)題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。

Series.str.extract(pat, flags=0, expand=None)

參數(shù):
pat : 字符串或正則表達(dá)式
flags : 整型,
expand : 布爾型,是否返回?cái)?shù)據(jù)框
Returns:
數(shù)據(jù)框dataframe/索引index

Series.str.extractall(pat, flags=0)
參數(shù):
pat : 字符串或正則表達(dá)式
flags : 整型
返回值:
DataFrame(數(shù)據(jù)框)

#如果提取的規(guī)則結(jié)果有多組,則會(huì)返回?cái)?shù)據(jù)框,不匹配的返回NaNIn [32]: pd.Series(['a1', 'b2', 'c3']).str.extract('([ab])(\d)', expand=False)
Out[32]: 
     0    10    a    11    b    22  NaN  NaN#注意正則表達(dá)式中的任何捕獲組名稱將用于列名,否則捕獲的組名將被當(dāng)作列名In [33]: pd.Series(['a1', 'b2', 'c3']).str.extract('(?P<letter>[ab])(?P<digit>\d)', expand=False)
Out[33]: 
  letter digit0      a     11      b     22    NaN   NaN#參數(shù)expand=True在一組返回值的情況下,返回?cái)?shù)據(jù)框In [35]: pd.Series(['a1', 'b2', 'c3']).str.extract('[ab](\d)', expand=True)
Out[35]: 
     00    11    22  NaN#參數(shù)expand=False在一組返回值的情況下,返回序列(Series)In [36]: pd.Series(['a1', 'b2', 'c3']).str.extract('[ab](\d)', expand=False)
Out[36]: 
0      11      22    NaN
dtype: object#參數(shù)expand=True作用在索引上時(shí),一組數(shù)據(jù)返回?cái)?shù)據(jù)框In [37]: s = pd.Series(["a1", "b2", "c3"], ["A11", "B22", "C33"])

In [38]: s
Out[38]: 
A11    a1
B22    b2
C33    c3
dtype: object

In [39]: s.index.str.extract("(?P<letter>[a-zA-Z])", expand=True)
Out[39]: 
  letter0      A1      B2      C#參數(shù)expand=False作用在索引上時(shí),一組數(shù)據(jù)返回索引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時(shí),各種情況下index,Series返回值的情況 1 group    >1 group
Index      Index    ValueError
Series    Series    DataFrame5.#提取所有匹配的字符串#extract只返回第一個(gè)匹配到的字符In [42]: s = pd.Series(["a1a2", "b1", "c1"], index=["A", "B", "C"])
In [43]: s
Out[43]: 
A    a1a2
B      b1
C      c1
dtype: object
In [44]: two_groups = '(?P<letter>[a-z])(?P<digit>[0-9])'In [45]: s.str.extract(two_groups, expand=True)
Out[45]: 
  letter digit
A      a     1B      b     1C      c     1#extractall將匹配所有返回的字符In [46]: s.str.extractall(two_groups)
Out[46]: 
        letter digit
  match             
A 0          a     1
  1          a     2B 0          b     1C 0          c     1

關(guān)于 Pandas中extract( ) 和extractall( ) 方法如何使用問(wèn)題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒(méi)有解開(kāi),可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識(shí)。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI