一、 pandas的DataFrame,有时需要处理一些字符串类型列,运用Series.str列内置方法很方便。
1.one hot 独热编码,get_dummies
series=data['列名'].str.get_dummies(sep=',')
实现DataFrame中列有多值,且想把这列one hot下
2.切分字符串,split()
series=data['列名'].str.split(',')
把DataFrame列中字符串以','分隔开,每个元素分开后存入一个列表里
series=data['列名'].str.split(',',expand=True)
参数expand,这个参数取True时,会把切割出来的内容当做一列,产生多列。
series=data['列名'].str.split(',',expand=True)[0]
可以只要第一列。
3.替换,replace()
series=data['列名'].str.replace(',','-')
用‘-’代替‘,’
4.是否包含表达式,contains()
series=data['列名'].str.contains('we')
返回的是布尔值series
Series.str.contains(
pat, # 要查询的字符串、要查询的或者正则表达式
case=True, # 是否对大小写敏感
flags=0, # 用来传给正则模块的参数,比如 flags=re.INGNORECASE 等价于 case=False
na=nan, # 默认对空值不处理,即输出结果还是 NaN
regex=True # 即第一个参数 pat部分 要不要按照正则表达式的规则。
#所以针对特殊符号,默认情况下我们必须使用转义符,或者设置 regex=False
)
5.查找所有符合正则表达式的字符findall()
series=data['列名'].str.findall("[a-z]")
以数组的形式返回
6.计算字符串的长度,len()
series=data['列名'].str.len()
7.去除前后的空白字符,strip()
series=data['列名'].str.strip()
rstrip() 去除后面的空白字符
lstrip() 去除前面的空白字符
8.isalnum() 是否全部是数字和字母组成
isalpha() 是否全部是字母
isdigit() 是否全部都是数字
isspace() 是否空格
islower() 是否全部小写
isupper() 是否全部大写
istitle() 是否只有首字母为大写,其他字母为小写