Pandas 文本数据方法 extract( ) extractall( )
2017-05-08 00:00
411 查看
Series.str.extract(pat, flags=0, expand=None)
参数:
pat : 字符串或正则表达式
flags : 整型,
expand : 布尔型,是否返回数据框
Returns:
数据框dataframe/索引index
Series.str.extractall(pat, flags=0)
参数:
pat : 字符串或正则表达式
flags : 整型
返回值:
DataFrame(数据框)
参数:
pat : 字符串或正则表达式
flags : 整型,
expand : 布尔型,是否返回数据框
Returns:
数据框dataframe/索引index
Series.str.extractall(pat, flags=0)
参数:
pat : 字符串或正则表达式
flags : 整型
返回值:
DataFrame(数据框)
#如果提取的规则结果有多组,则会返回数据框,不匹配的返回NaN In [32]: pd.Series(['a1', 'b2', 'c3']).str.extract('([ab])(\d)', expand=False) Out[32]: 0 1 0 a 1 1 b 2 2 NaN NaN #注意正则表达式中的任何捕获组名称将用于列名,否则捕获的组名将被当作列名 In [33]: pd.Series(['a1', 'b2', 'c3']).str.extract('(?P<letter>[ab])(?P<digit>\d)', expand=False) Out[33]: letter digit 0 a 1 1 b 2 2 NaN NaN #参数expand=True在一组返回值的情况下,返回数据框 In [35]: pd.Series(['a1', 'b2', 'c3']).str.extract('[ab](\d)', expand=True) Out[35]: 0 0 1 1 2 2 NaN #参数expand=False在一组返回值的情况下,返回序列(Series) In [36]: pd.Series(['a1', 'b2', 'c3']).str.extract('[ab](\d)', expand=False) Out[36]: 0 1 1 2 2 NaN dtype: object #参数expand=True作用在索引上时,一组数据返回数据框 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]: letter 0 A 1 B 2 C #参数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返回值的情况 1 group >1 group Index Index ValueError Series Series DataFrame 5. #提取所有匹配的字符串 #extract只返回第一个匹配到的字符 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 1 B b 1 C c 1 #extractall将匹配所有返回的字符 In [46]: s.str.extractall(two_groups) Out[46]: letter digit match A 0 a 1 1 a 2 B 0 b 1 C 0 c 1
相关文章推荐
- Pandas 文本数据方法 extract( ) extractall( )
- Pandas 文本数据方法 wrap( )
- Pandas 文本数据方法 join( )
- Pandas 文本数据方法 get_dummies()
- Pandas 文本数据方法 find( ) rfind( ) index( ) rindex( )
- Pandas 文本数据方法 split()rsplit()
- Pandas 文本数据方法 contains()
- Pandas 文本数据方法 split()rsplit()
- Pandas 文本数据方法 cat()
- Pandas 文本数据方法 is*()
- Pandas 文本数据方法 get( )
- Pandas 文本数据方法 repeat( )
- Pandas 文本数据方法 partition( )
- Pandas 文本数据方法 count( )
- Pandas 文本数据方法 slice( )
- Pandas 文本数据方法 strip( ) lstrip( ) rstrip( )
- Pandas 文本数据方法 pad( ) center( ) ljust() rjust() zfill()
- Pandas 文本数据方法 slice( )
- Pandas 文本数据方法 contains()
- Pandas 文本数据方法 startswith( ) endwith( )