pandas处理字符串

1、DataFrame的列

df.columns.str.strip()
df.columns.str.lower()
#处理列-清理开头和结尾的白空格,将所有的名称都换为小写,并且将其余的空格都替换为下划线
 df.columns = df.columns.str.strip().str.lower().str.replace(' ', '_')

2、索引

idx = pd.Index([' jack', 'jill ', ' jesse ', 'frank'])
idx.str.strip()
idx.str.lstrip()
idx.rstrip()

在这里插入图片描述
3、Series

s.str.lower() 
s.str.upper()
s.str.len()
s.str.split('_')
s.str.split('_').str.get(1)
#切割
s.str.split('_', expand=True, n=1)--n:表示切割次数,expand:是否返回一个数据表或一个序列
replace:默认使用正则表达式
s3 = pd.Series(['A', 'B', 'C', 'Aaba', 'Baca','', np.nan, 'CABA', 'dog', 'cat'])
s3
匹配替换字符:s3.str.replace('^.a|dog', 'XX-XX ', case=False)
不需要写转义字符:dollars.str.replace('-$', '-', regex=False)
传入可调用对象:
pat=r'[a-z]+'
def repl(m):
    return m.group(0)[::-1]
pd.Series(['foo 123', 'bar baz', np.nan]).str.replace(pat, repl)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

拼接:s.str.cat(sep=',')-sep默认空字符串 默认情况下,缺失值会被忽略,使用np_rep可以对缺失值进行赋值
pd.Series(['a', 'b', np.nan, 'd'])--t.str.cat(sep=',', na_rep='-')
.拼接序列和其他列表型对象为新的序列(必须要确保长度相同)--s.str.cat(['A', 'B', 'C', 'D'])
.任何一端的缺失值都会导致之中结果为缺失值,除非使用na_rep--s.str.cat(t, na_rep='-')
索引:s.str[0],s.str[1]
extract通过正则表达式来提取字符串,没有匹配成功的一行返回NaN,对象总是object
pd.Series(['a1', 'b2', 'c3']).str.extract(r'([ab])(\d)', expand=False)
捕获一个组:
s = pd.Series(["a1", "b2", "c3"], ["A11", "B22", "C33"])
s.index.str.extract("(?P<letter>[a-zA-Z])", expand=False)
捕获多个组:
expand=True,会返回一个数据表,expand=False会抛出ValueError
#s.index.str.extract("(?P<letter>[a-zA-Z])([0-9]+)", expand=True)
# s.index.str.extract("(?P<letter>[a-zA-Z])([0-9]+)", expand=False)

在这里插入图片描述
捕获一个组:expand=False
在这里插入图片描述
捕获一个组:expand=True
在这里插入图片描述
捕获多个组:expand=True
在这里插入图片描述

contains:测试匹配或包含模式的字符串
pattern = r'[0-9][a-z]'
pd.Series(['1', '2', '3a', '3b', '03c']).str.contains(pattern)

在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值