当前位置:首页 » 《随便一记》 » 正文

100天精通Python(数据分析篇)——第72天:Pandas文本数据处理方法之判断类型、去除空白字符、拆分和连接

20 人参与  2023年02月07日 08:05  分类 : 《随便一记》  评论

点击全文阅读


文章目录

每篇前言一、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

??本文已收录于Python全栈系列专栏:《100天精通Python从入门到就业》?​?​此专栏文章是专门针对Python零基础小白所准备的一套完整教学,从0到100的不断进阶深入的学习,各知识点环环相扣??订阅专栏后续可以阅读Python从入门到就业100篇文章还可私聊进千人Python全栈交流群(手把手教学,问题解答); 进群可领取80GPython全栈教程视频 + 300本计算机书籍:基础、Web、爬虫、数据分析、可视化、机器学习、深度学习、人工智能、算法、面试题等。??加入我一起学习进步,一个人可以走的很快,一群人才能走的更远!

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

本文是上篇的补充,基础不会的小伙伴请看上文: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


点击全文阅读


本文链接:http://zhangshiyu.com/post/53015.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1