快乐学习
前程无忧、中华英才非你莫属!

原创-Pandas心法之数据字符串与正则处理-8

"""
字符串操作
"""
import pandas as pd

monte = pd.Series(['Graham Chapman', 'John Cleese', 'Terry Gilliam',
                   'Eric Idle', 'Terry Jones', 'Michael Palin'])
print(monte)
print(monte.str.lower())
print(monte.str.len())
print(monte.str.startswith('T'))
print(monte.str.split())

'''
字符串函数
len() lower() translate() islower()
ljust() upper() startswith() isupper()
rjust() find() endswith() isnumeric()
center() rfind() isalnum() isdecimal()
zfill() index() isalpha() split()
strip() rindex() isdigit() rsplit()
rstrip() capitalize() isspace() partition()
lstrip() swapcase() istitle() rpartition()

'''

'''
使用正则表达式
'''
'''

Method Description
match() Call re.match() on each element, returning a boolean.
extract() Call re.match() on each element, returning matched groups as strings.
findall() Call re.findall() on each element
replace() Replace occurrences of pattern with some other string
contains() Call re.search() on each element, returning a boolean
count() Count occurrences of pattern
split() Equivalent to str.split(), but accepts regexps
rsplit() Equivalent to str.rsplit(), but accepts regexps

'''

# 通过在每个元素的开头要求一组连续的字符来从每个名字中提取名字:
# print(monte.str.extract('([A-Za-z]+)', expand=False))

'''
例如查找所有以辅音开头和结尾的名称,
并使用字符串开头(^)和字符串结尾($)正则表达式字符
'''
print(monte.str.findall(r'^[^AEIOU].*[^aeiou]$'))
print(monte.str[0:3])

'''
字符串还有一些有用的方法

get() 索引每个元素
slice() 切片每个元素
slice_replace() 用传递的值替换每个元素中的切片
cat() 连接字符串
repeat() 重复值
normalize() 返回字符串的Unicode形式
pad() 在字符串的左侧,右侧或两侧添加空格
wrap() 将长字符串拆分成长度小于给定宽度的行
join() 使用传递的分隔符将字符串连接到系列的每个元素中
get_dummies() 提取虚拟变量作为数据框

'''
print(monte.str.split().str.get(-1))

# 通过分隔符来查询
full_monte = pd.DataFrame({'name': monte,
                           'info': ['B|C|D', 'B|D', 'A|C',
                                    'B|D', 'B|C', 'B|C|D']})
print(full_monte)

# 该get_dummies()例程可让您快速将这些指标变量拆分为DataFrame:
print(full_monte['info'].str.get_dummies('|'))
打赏

未经允许不得转载:同乐学堂 » 原创-Pandas心法之数据字符串与正则处理-8

分享到:更多 ()

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

特别的技术,给特别的你!

联系QQ:1071235258QQ群:367203382
error: Sorry,暂时内容不可复制!