数据处理,pandas方面遇到的问题

 一、 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() 是否只有首字母为大写,其他字母为小写

posted @ 2020-10-19 18:31  afeng2017  阅读(304)  评论(0编辑  收藏  举报