文章目录
每篇前言一、Python字符串内置方法1. 判断类型2. 去除空白字符3. 拆分和连接二、Pandas判断类型1. str.isspace()2. str.isalnum()3. str.isalpha()4. str.isdecimal()5. str.isdigit()6. str.isnumeric()7. str.istitle()8. str.islower()9. str.isupper() 三、Pandas去除空白字符1. str.lstrip()2. str.rstrip()3. str.strip() 四. 拆分和连接1. str.partition(str)2. str.rpartition(str)3. str.split()1)指定字符串分割2)分割后转换成多列3)设置分割次数 4. str.splitlines()5. str.join(seq) 书籍介绍
每篇前言
??作者介绍:Python领域优质创作者、华为云享专家、阿里云专家博主、2021年CSDN博客新星Top6 |
本文是上篇的补充,基础不会的小伙伴请看上文:100天精通Python(数据分析篇)——第71天:Pandas文本数据处理方法之str/object类型转换、大小写转换、文本对齐、获取长度、出现次数、编码
一、Python字符串内置方法
1. 判断类型
方法 | 说明 |
---|---|
string.isspace() | 如果 string 中只包含空格,则返回 True |
string.isalnum() | 如果 string 至少有一个字符并且所有字符都是字母或数字则返回 True |
string.isalpha() | 如果 string 至少有一个字符并且所有字符都是字母则返回 True |
string.isdecimal() | 如果 string 只包含数字则返回 True,全角数字 |
string.isdigit() | 如果 string 只包含数字则返回 True,全角数字 、⑴ 、\u00b2 |
string.isnumeric() | 如果 string 只包含数字则返回 True,全角数字 ,汉字数字 |
string.istitle() | 如果 string 是标题化的(每个单词的首字母大写)则返回 True |
string.islower() | 如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True |
string.isupper() | 如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True |
2. 去除空白字符
方法 | 说明 |
---|---|
string.lstrip() | 截掉 string 左边(开始)的空白字符 |
string.rstrip() | 截掉 string 右边(末尾)的空白字符 |
string.strip() | 截掉 string 左右两边的空白字符 |
3. 拆分和连接
方法 | 说明 |
---|---|
string.partition(str) | 把字符串 string 分成一个 3 元素的元组 (str前面, str, str后面) |
string.rpartition(str) | 类似于 partition() 方法,不过是从右边开始查找 |
string.split(str=“”, num) | 以 str 为分隔符拆分 string,如果 num 有指定值,则仅分隔 num + 1 个子字符串,str 默认包含 ‘\r’, ‘\t’, ‘\n’ 和空格 |
string.splitlines() | 按照行(‘\r’, ‘\n’, ‘\r\n’)分隔,返回一个包含各行作为元素的列表 |
string.join(seq) | 以 string 作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串 |
二、Pandas判断类型
方法 | 说明 |
---|---|
series_obj.str.isspace() | 如果 string 中只包含空格,则返回 True |
series_obj.str.isalnum() | 如果 string 至少有一个字符并且所有字符都是字母或数字则返回 True |
series_obj.str.isalpha() | 如果 string 至少有一个字符并且所有字符都是字母则返回 True |
series_obj.str.isdecimal() | 如果 string 只包含数字则返回 True,全角数字 |
series_obj.str.isdigit() | 如果 string 只包含数字则返回 True,全角数字 、⑴ 、\u00b2 |
series_obj.str.isnumeric() | 如果 string 只包含数字则返回 True,全角数字 ,汉字数字 |
series_obj.str.istitle() | 如果 string 是标题化的(每个单词的首字母大写)则返回 True |
series_obj.str.islower() | 如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True |
series_obj.str.isupper() | 如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True |
1. str.isspace()
如果 string 中只包含空格,则返回 True
import pandas as pdimport numpy as npdata = [1, '篮球', '羽毛球 ', ' 排球', ' ', None, np.NaN]df = pd.Series(data)print(df)print(df.str.isspace())
运行结果:
2. str.isalnum()
如果 string 至少有一个字符并且所有字符都是字母或数字则返回 True
import pandas as pdimport numpy as npdata = [1, '篮球', '羽毛球 ', ' 排球', ' ', None, np.NaN]df = pd.Series(data)print(df)print(df.str.isalnum())
运行结果:
3. str.isalpha()
如果 string 至少有一个字符并且所有字符都是字母则返回 True
import pandas as pdimport numpy as npdata = [1, 'A', 'Ab', 'AbC', ' ', None, np.NaN]df = pd.Series(data)print(df)print(df.str.isalpha())
运行结果:
4. str.isdecimal()
如果 string 只包含数字则返回 True,全角数字
import pandas as pdimport numpy as npdata = [1, '123', 'Ab', 'AbC', ' ', None, np.NaN]df = pd.Series(data)print(df)print(df.str.isdecimal())
运行结果:
5. str.isdigit()
如果 string 只包含数字则返回 True,全角数字、⑴、\u00b2
import pandas as pdimport numpy as npdata = [1, '123', 'Ab', 'AbC', ' ', None, np.NaN]df = pd.Series(data)print(df)print(df.str.isdigit())
运行结果:
6. str.isnumeric()
如果 string 只包含数字则返回 True,全角数字,汉字数字
import pandas as pdimport numpy as npdata = [1, '123', 'Ab', 'AbC', ' ', None, np.NaN]df = pd.Series(data)print(df)print(df.str.isnumeric())
7. str.istitle()
如果 string 是标题化的(每个单词的首字母大写)则返回 True
import pandas as pdimport numpy as npdata = [1, 'A', 'Ab', 'ABC ab', 'Abc Ab', None, np.NaN]df = pd.Series(data)print(df)print(df.str.istitle())
运行结果:
8. str.islower()
如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True。简单来说:全是小写才是True
import pandas as pdimport numpy as npdata = [1, 'A', 'Ab', 'ABC ab', 'Abc Ab', 'ab', np.NaN]df = pd.Series(data)print(df)print(df.str.islower())
运行结果:
9. str.isupper()
如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True。简单来说:全是大写才是True
import pandas as pdimport numpy as npdata = [1, 'A', 'Ab', 'ABC ab', 'Abc Ab', 'ab', np.NaN]df = pd.Series(data)print(df)print(df.str.isupper())
运行结果:
三、Pandas去除空白字符
方法 | 说明 |
---|---|
series_obj.str.lstrip() | 截掉 string 左边(开始)的空白字符 |
series_obj.str.rstrip() | 截掉 string 右边(末尾)的空白字符 |
series_obj.str.strip() | 截掉 string 左右两边的空白字符 |
1. str.lstrip()
截掉 string 左边(开始)的空白字符
import pandas as pdimport numpy as npdata = [1, 'A ', ' Ab', ' ABC ab', ' Abc Ab', ' ', np.NaN]df = pd.Series(data)print("去除左边空格前:")print(df[2])print(df[3])print(df[4])df = df.str.lstrip() # 去除空格print("去除左边空格后:")print(df[2])print(df[3])print(df[4])
运行结果:
2. str.rstrip()
截掉 string 右边(末尾)的空白字符
import pandas as pdimport numpy as npdata = [1, 'A ', 'Ab ', 'ABC ab ', 'Abc Ab ', ' ', np.NaN]df = pd.Series(data)print("去除左边空格前:")print(df[2])print(df[3])print(df[4])df = df.str.rstrip() # 去除空格print("去除左边空格后:")print(df[2])print(df[3])print(df[4])
运行结果:
3. str.strip()
截掉 string 左右两边的空白字符
import pandas as pdimport numpy as npdata = [1, ' A ', ' Ab ', ' ABC ab ', ' Abc Ab ', ' ', np.NaN]df = pd.Series(data)print("去除左边空格前:")print(df[2])print(df[3])print(df[4])df = df.str.strip() # 去除空格print("去除左边空格后:")print(df[2])print(df[3])print(df[4])
运行结果:
四. 拆分和连接
方法 | 说明 |
---|---|
series_obj.str.partition(str) | 把字符串 string 分成一个 3 元素的元组 (str前面, str, str后面) |
series_obj.str.rpartition(str) | 类似于 partition() 方法,不过是从右边开始查找 |
series_obj.str.split(str=‘’, num) | 以 str 为分隔符拆分 string,如果 num 有指定值,则仅分隔 num个子字符串,str 默认包含 ‘\r’, ‘\t’, ‘\n’ 和空格 |
series_obj.str.splitlines() | 按照行(‘\r’, ‘\n’, ‘\r\n’)分隔,返回一个包含各行作为元素的列表 |
series_obj.str.join(seq) | 以 string 作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串 |
1. str.partition(str)
把字符串 string 分成一个 3 元素的元组 (str前面, str, str后面)
import pandas as pdimport numpy as npdata = [1, 'a', 'Ab', 'ABC ab', 'Abc Ab', ' ', np.NaN]df = pd.Series(data)print(df)df = df.str.partition()print(df)
2. str.rpartition(str)
类似于 partition() 方法,不过是从右边开始查找
import pandas as pdimport numpy as npdata = [1, 'a', 'Ab', 'ABC ab', 'Abc Ab', ' ', np.NaN]df = pd.Series(data)print(df)df = df.str.rpartition()print(df)
3. str.split()
以 str 为分隔符拆分 string,如果 num 有指定值,则仅分隔 num + 1 个子字符串,str 默认包含 ‘\r’,
‘\t’, ‘\n’ 和空格。简单来说:就是以指定字符串分割
1)指定字符串分割
import pandas as pdimport numpy as npdata = [1, 'a;b', 'Ab;', 'ABC;ab;abc', 'Abc;Ab;eee', ' ', np.NaN]df = pd.Series(data)print(df)df = df.str.split(";")print(df)
运行结果:
2)分割后转换成多列
设置: expand=True
import pandas as pdimport numpy as npdata = [1, 'a;b', 'Ab;', 'ABC;ab;abc', 'Abc;Ab;eee', ' ', np.NaN]df = pd.Series(data)print(df)df = df.str.split(";", expand=True)print(df)
运行结果:
3)设置分割次数
设置:n=1
值
import pandas as pdimport numpy as npdata = [1, 'a;b', 'Ab;', 'ABC;ab;abc', 'Abc;Ab;eee', ' ', np.NaN]df = pd.Series(data)print(df)df = df.str.split(";", expand=True, n=1)print(df)
运行结果:
4. str.splitlines()
按照行(‘\r’, ‘\n’, ‘\r\n’)分隔,返回一个包含各行作为元素的列表。注意:这个方法Pandas无法使用
import pandas as pdimport numpy as npdata = [1, 'a\rb', 'Ab\n', 'ABC\r\nab\nabc', 'Abc;Ab;eee', ' ', np.NaN]df = pd.Series(data)print(df)df = df.str.splitlines()print(df)
运行结果:
5. str.join(seq)
以 string 作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串。简单来说:就是往元素之间插入一个指定元素,形成新的字符串
import pandas as pdimport numpy as npdata = [1, 'ab', 'Ab', 'ABC ab abc', 'Abc Ab eee', ' ', np.NaN]df = pd.Series(data)print(df)df = df.str.join('-')print(df)
运行结果:
书籍介绍
《贝叶斯算法与机器学习》
涵盖了贝叶斯概率、概率估计、贝叶斯分类、随机场、参数估计、机器学习、深度学习、贝叶斯网络、动态贝叶斯网络、贝叶斯深度学习等。本书涉及的应用领域包含机器学习、图像处理、语音识别、语义分析等。本书整体由易到难,逐步深入,内容以算法原理讲解和应用解析为主,每节内容辅以案例进行综合讲解。
如果不想抽奖当当自营购买链接:http://product.dangdang.com/29478966.html