Pandas 提供了一系列的字符串函数,因此能够很方便地对字符串进行处理。在本节,我们使用 Series 对象对常用的字符串函数进行讲解。

常用的字符串处理函数如下表所示:

函数名称 函数功能和描述
lower() 将的字符串转换为小写。
upper() 将的字符串转换为大写。
len() 得出字符串的长度。
strip() 去除字符串两边的空格(包含换行符)。
split() 用指定的分割符分割字符串。
cat(sep="") 用给定的分隔符连接字符串元素。
get_dummies() 返回一个带有独热编码值的 DataFrame 结构。
contains(pattern) 如果子字符串包含在元素中,则为每个元素返回一个布尔值 True,否则为 False。
replace(a,b) 将值 a 替换为值 b。
count(pattern) 返回每个字符串元素出现的次数。
startswith(pattern) 如果 Series 中的元素以指定的字符串开头,则返回 True。
endswith(pattern) 如果 Series 中的元素以指定的字符串结尾,则返回 True。
findall(pattern) 以列表的形式返出现的字符串。
swapcase() 交换大小写。
islower() 返回布尔值,检查 Series 中组成每个字符串的所有字符是否都为小写。
issupper() 返回布尔值,检查 Series 中组成每个字符串的所有字符是否都为大写。
isnumeric() 返回布尔值,检查 Series 中组成每个字符串的所有字符是否都为数字。
repeat(value) 以指定的次数重复每个元素。
find(pattern) 返回字符串第一次出现的索引位置。

注意:上述所有字符串函数全部适用于 DataFrame 对象,同时也可以与 Python 内置的字符串函数一起使用,这些函数在处理 Series/DataFrame 对象的时候会自动忽略缺失值数据(NaN)。

lower()

  1. import pandas as pd
  2. import numpy as np
  3. s = pd.Series(['C', 'Python', 'java', 'go', np.nan, '1125','javascript'])
  4. print(s.str.lower)

输出结果:

0             tom
1    william rick
2            john
3         alber@t
4             NaN
5            1234
6      stevesmith
dtype: object

len()

  1. import pandas as pd
  2. import numpy as np
  3. s = pd.Series(['C', 'Python', 'java', 'go', np.nan, '1125','javascript'])
  4. print(s.str.len())

输出结果:

0     1.0
1 6.0
2 4.0
3 2.0
4 NaN
5 4.0
6 10.0
dtype: float64

strip()

  1. import pandas as pd
  2. import numpy as np
  3. s = pd.Series(['C ', ' Python', 'java', 'go', np.nan, '1125 ','javascript'])
  4. print(s.str.strip())

输出结果:

0             C
1 Python
2 java
3 go
4 NaN
5 1125
6 javascript
dtype: object

split(pattern)

  1. import pandas as pd
  2. import numpy as np
  3. s = pd.Series(['C ',' Python','java','go','1125 ','javascript'])
  4. print(s.str.split(" "))

输出结果:

0           [C, ]
1 [, Python]
2 [java]
3 [go]
4 [1125, ]
5 [javascript]
dtype: object

cat(sep="")

  1. import pandas as pd
  2. import numpy as np
  3. s = pd.Series(['C', 'Python', 'java', 'go', np.nan, '1125','javascript'])
  4. #会自动忽略NaN
  5. print(s.str.cat(sep="_"))

输出结果:

C_Python_java_go_1125_javascript

get_dummies()

  1. import pandas as pd
  2. import numpy as np
  3. s = pd.Series(['C', 'Python', 'java', 'go', np.nan, '1125','javascript'])
  4. print(s.str.get_dummies())

输出结果:

   1125  C  Python  go  java  javascript
0 0 1 0 0 0 0
1 0 0 1 0 0 0
2 0 0 0 0 1 0
3 0 0 0 1 0 0
4 0 0 0 0 0 0
5 1 0 0 0 0 0
6 0 0 0 0 0 1

contains()

检查 Series 中的每个字符,如果字符中包含空格,则返回 True,否则返回 False。示例如下:

  1. import pandas as pd
  2. import numpy as np
  3. s = pd.Series(['C ',' Python','java','go','1125 ','javascript'])
  4. print(s.str.contains(" "))

输出结果:

0     True
1 True
2 False
3 False
4 True
5 False
dtype: bool

repeat()

  1. import pandas as pd
  2. import numpy as np
  3. s = pd.Series(['C ',' Python','java','go','1125 ','javascript'])
  4. print(s.str.repeat(3))

输出结果:

0                            C C C
1 Python Python Python
2 javajavajava
3 gogogo
4 1125 1125 1125
5 javascriptjavascriptjavascript
dtype: object

startswith()

  1. import pandas as pd
  2. import numpy as np
  3. s = pd.Series(['C ',' Python','java','go','1125 ','javascript'])
  4. #若以指定的"j"开头则返回True
  5. print(s.str.startswith("j"))

输出结果:

0    False
1 False
2 True
3 False
4 False
5 True
dtype: bool

find()

  1. import pandas as pd
  2. import numpy as np
  3. s = pd.Series(['C ',' Python','java','go','1125 ','javascript'])
  4. print(s.str.find("j"))

输出结果:

0   -1
1 -1
2 0
3 -1
4 -1
5 0
dtype: int64

如果返回 -1 表示该字符串中没有出现指定的字符。

findall()

  1. import pandas as pd
  2. import numpy as np
  3. s = pd.Series(['C ',' Python','java','go','1125 ','javascript'])
  4. print(s.str.findall("j"))

输出结果:

0     []
1 []
2 [j]
3 []
4 []
5 [j]
dtype: object

swapcase()

  1. import pandas as pd
  2. import numpy as np
  3. s = pd.Series(['C ',' Python','java','go','1125 ','javascript'])
  4. print(s.str.swapcase())

输出结果:

0            c
1 pYTHON
2 JAVA
3 GO
4 1125
5 JAVASCRIPT
dtype: object

isnumeric()

返回一个布尔值,用来判断是否存在数字型字符串。示例如下:

  1. import pandas as pd
  2. import numpy as np
  3. s = pd.Series(['C ',' Python','java','go','1125','javascript'])
  4. print(s.str.isnumeric())

输出结果:

0    False
1 False
2 False
3 False
4 True
5 False
dtype: bool

pandas之字符串操作的更多相关文章

  1. Python数据科学手册-Pandas:向量化字符串操作、时间序列

    向量化字符串操作 Series 和 Index对象 的str属性. 可以正确的处理缺失值 方法列表 正则表达式. Method Description match() Call re.match() ...

  2. 利用Python进行数据分析(15) pandas基础: 字符串操作

      字符串对象方法 split()方法拆分字符串: strip()方法去掉空白符和换行符: split()结合strip()使用: "+"符号可以将多个字符串连接起来: join( ...

  3. Pandas字符串操作及实例应用

    字符串操作 字符串对象方法 val = 'a,b, guido' val.split(',') ['a', 'b', ' guido'] pieces = [x.strip() for x in va ...

  4. 【Python自动化Excel】Python与pandas字符串操作

    Python之所以能够成为流行的数据分析语言,有一部分原因在于其简洁易用的字符串处理能力. Python的字符串对象封装了很多开箱即用的内置方法,处理单个字符串时十分方便:对于Excel.csv等表格 ...

  5. Pandas | 11 字符串函数

    在本章中,我们将使用基本系列/索引来讨论字符串操作.在随后的章节中,将学习如何将这些字符串函数应用于数据帧(DataFrame). Pandas提供了一组字符串函数,可以方便地对字符串数据进行操作. ...

  6. pandas 之 字符串处理

    import numpy as np import pandas as pd Python has long been a popular raw data manipulation language ...

  7. python数据结构:pandas(2)数据操作

    一.Pandas的数据操作 0.DataFrame的数据结构 1.Series索引操作 (0)Series class Series(base.IndexOpsMixin, generic.NDFra ...

  8. pandas处理字符串

    # pandas 字符串的处理 # 前面已经学习了字符串的处理函数 # df["bWendu"].str.replace("℃","").a ...

  9. 一句python,一句R︱python中的字符串操作、中文乱码、NaN情况

    一句python,一句R︱python中的字符串操作.中文乱码.NaN情况 先学了R,最近刚刚上手Python,所以想着将python和R结合起来互相对比来更好理解python.最好就是一句pytho ...

  10. 数据分析05 /pandas的高级操作

    数据分析05 /pandas的高级操作 目录 数据分析05 /pandas的高级操作 1. 替换操作 2. 映射操作 3. 运算工具 4. 映射索引 / 更改之前索引 5. 排序实现的随机抽样/打乱表 ...

随机推荐

  1. MySQL 面试题总结

    MySQL的面试知识点总结 Q1:MySQL 的逻辑架构了解吗? 第一层是服务器层,主要提供连接处理.授权认证.安全等功能. 第二层实现了 MySQL 核心服务功能,包括查询解析.分析.优化.缓存以及 ...

  2. Falsk 大文件上传/下载(send_from_directory)

    下载接口: 服务端flask下载接口 @app.route("/api/download/", methods=["POST"]) def download() ...

  3. 通过【leaflet】 调用高德离线瓦片地图

    官网:https://leafletjs.com/ 首先在官网下载[leaflet.css]和[leaflet.js] 引用js和css <link href="js/leaflet. ...

  4. 5、什么是MIME

    MIME 类型 媒体类型(通常称为 Multipurpose Internet Mail Extensions 或 MIME 类型 )是一种标准,用来表示文档.文件或字节流的性质和格式.它在IETF ...

  5. JS变量之间赋值,修改变量值,原变量会随之改变的问题

    现象: 开发vue项目的过程中,需要多次用到一份基础数据,为减少代码量,提高一下复用效果,便用变量A来定义,在项目中需要用到时就用变量A进行赋值. 在项目中调用时,我新定义一个变量B,再将变量A赋值给 ...

  6. [Lua]敏感字检测

    参考链接: https://zhuanlan.zhihu.com/p/84685657 https://www.cnblogs.com/luguoshuai/p/9254190.html 一开始打算使 ...

  7. 使用yarn启用项目,报错无法加载文件 C:\Users\Administrator\AppData\Roaming\npm\yarn.ps1,因为在此系 统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies。

    这是由于新版win10 安装的时候会出现: 解决 搜索powershell,右键以管理员身份运行 2.打开之后,执行命令set-ExecutionPolicy RemoteSigned更改 Power ...

  8. IBM 双队列管理器,双向传输

    1. 建立队列管理器 建立[test01][test02]两个队列管理器,一直下一步即可,端口号不能一致(需要记住设置的端口号,后面会用到) [test01]端口号 1414 [test02]端口号 ...

  9. gorm操作sqlite3,高并发读写如何避免锁库?

    1. 场景 这两天一直被这个sqlit3困扰,起因是项目中需要有这样一个中间,中间件承担着API角色和流量转发的角色,需要接收来自至少300个agent的请求数据,和健康检测的请求. 所以当即想到用g ...

  10. 网络基础-OSI七层模型

    什么是OSI模型 OSI模型(或 Open Systems Interconnection Model开放系统互连模型)是网络中使用的绝对基础模型.这个关键模型提供了一个框架,规定所有联网设备将如何发 ...