pandas之字符串操作
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()
- import pandas as pd
- import numpy as np
- s = pd.Series(['C', 'Python', 'java', 'go', np.nan, '1125','javascript'])
- print(s.str.lower)
输出结果:
0 tom
1 william rick
2 john
3 alber@t
4 NaN
5 1234
6 stevesmith
dtype: object
len()
- import pandas as pd
- import numpy as np
- s = pd.Series(['C', 'Python', 'java', 'go', np.nan, '1125','javascript'])
- 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()
- import pandas as pd
- import numpy as np
- s = pd.Series(['C ', ' Python', 'java', 'go', np.nan, '1125 ','javascript'])
- print(s.str.strip())
输出结果:
0 C
1 Python
2 java
3 go
4 NaN
5 1125
6 javascript
dtype: object
split(pattern)
- import pandas as pd
- import numpy as np
- s = pd.Series(['C ',' Python','java','go','1125 ','javascript'])
- print(s.str.split(" "))
输出结果:
0 [C, ]
1 [, Python]
2 [java]
3 [go]
4 [1125, ]
5 [javascript]
dtype: object
cat(sep="")
- import pandas as pd
- import numpy as np
- s = pd.Series(['C', 'Python', 'java', 'go', np.nan, '1125','javascript'])
- #会自动忽略NaN
- print(s.str.cat(sep="_"))
输出结果:
C_Python_java_go_1125_javascript
get_dummies()
- import pandas as pd
- import numpy as np
- s = pd.Series(['C', 'Python', 'java', 'go', np.nan, '1125','javascript'])
- 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。示例如下:
- import pandas as pd
- import numpy as np
- s = pd.Series(['C ',' Python','java','go','1125 ','javascript'])
- print(s.str.contains(" "))
输出结果:
0 True
1 True
2 False
3 False
4 True
5 False
dtype: bool
repeat()
- import pandas as pd
- import numpy as np
- s = pd.Series(['C ',' Python','java','go','1125 ','javascript'])
- 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()
- import pandas as pd
- import numpy as np
- s = pd.Series(['C ',' Python','java','go','1125 ','javascript'])
- #若以指定的"j"开头则返回True
- print(s.str.startswith("j"))
输出结果:
0 False
1 False
2 True
3 False
4 False
5 True
dtype: bool
find()
- import pandas as pd
- import numpy as np
- s = pd.Series(['C ',' Python','java','go','1125 ','javascript'])
- print(s.str.find("j"))
输出结果:
0 -1
1 -1
2 0
3 -1
4 -1
5 0
dtype: int64
如果返回 -1 表示该字符串中没有出现指定的字符。
findall()
- import pandas as pd
- import numpy as np
- s = pd.Series(['C ',' Python','java','go','1125 ','javascript'])
- print(s.str.findall("j"))
输出结果:
0 []
1 []
2 [j]
3 []
4 []
5 [j]
dtype: object
swapcase()
- import pandas as pd
- import numpy as np
- s = pd.Series(['C ',' Python','java','go','1125 ','javascript'])
- print(s.str.swapcase())
输出结果:
0 c
1 pYTHON
2 JAVA
3 GO
4 1125
5 JAVASCRIPT
dtype: object
isnumeric()
返回一个布尔值,用来判断是否存在数字型字符串。示例如下:
- import pandas as pd
- import numpy as np
- s = pd.Series(['C ',' Python','java','go','1125','javascript'])
- print(s.str.isnumeric())
输出结果:
0 False
1 False
2 False
3 False
4 True
5 False
dtype: bool
pandas之字符串操作的更多相关文章
- Python数据科学手册-Pandas:向量化字符串操作、时间序列
向量化字符串操作 Series 和 Index对象 的str属性. 可以正确的处理缺失值 方法列表 正则表达式. Method Description match() Call re.match() ...
- 利用Python进行数据分析(15) pandas基础: 字符串操作
字符串对象方法 split()方法拆分字符串: strip()方法去掉空白符和换行符: split()结合strip()使用: "+"符号可以将多个字符串连接起来: join( ...
- Pandas字符串操作及实例应用
字符串操作 字符串对象方法 val = 'a,b, guido' val.split(',') ['a', 'b', ' guido'] pieces = [x.strip() for x in va ...
- 【Python自动化Excel】Python与pandas字符串操作
Python之所以能够成为流行的数据分析语言,有一部分原因在于其简洁易用的字符串处理能力. Python的字符串对象封装了很多开箱即用的内置方法,处理单个字符串时十分方便:对于Excel.csv等表格 ...
- Pandas | 11 字符串函数
在本章中,我们将使用基本系列/索引来讨论字符串操作.在随后的章节中,将学习如何将这些字符串函数应用于数据帧(DataFrame). Pandas提供了一组字符串函数,可以方便地对字符串数据进行操作. ...
- pandas 之 字符串处理
import numpy as np import pandas as pd Python has long been a popular raw data manipulation language ...
- python数据结构:pandas(2)数据操作
一.Pandas的数据操作 0.DataFrame的数据结构 1.Series索引操作 (0)Series class Series(base.IndexOpsMixin, generic.NDFra ...
- pandas处理字符串
# pandas 字符串的处理 # 前面已经学习了字符串的处理函数 # df["bWendu"].str.replace("℃","").a ...
- 一句python,一句R︱python中的字符串操作、中文乱码、NaN情况
一句python,一句R︱python中的字符串操作.中文乱码.NaN情况 先学了R,最近刚刚上手Python,所以想着将python和R结合起来互相对比来更好理解python.最好就是一句pytho ...
- 数据分析05 /pandas的高级操作
数据分析05 /pandas的高级操作 目录 数据分析05 /pandas的高级操作 1. 替换操作 2. 映射操作 3. 运算工具 4. 映射索引 / 更改之前索引 5. 排序实现的随机抽样/打乱表 ...
随机推荐
- Windows系统更改/迁移用户目录
系统盘为C盘,C盘空间不足,C盘太满了,C盘清理时查看发现C:\Users目录占用几十个GB,以下方法可将Users目录大部分空间转移. 1. 准备工作 更改/迁移用户目录之前先自行备份当前用户的资料 ...
- #Python #微信 #消息防撤回 Python实现微信防撤回
微信(WeChat)是腾讯公司于2011年1月21日推出的一款社交软件,8年时间微信做到日活10亿,日消息量450亿.在此期间微信也推出了不少的功能如:"摇一摇"."漂流 ...
- Linux命令之nc命令
1.简介 nc是netcat的简写,是一个功能强大的网络工具,有着网络界的瑞士军刀美誉.nc命令在linux系统中实际命令是ncat,nc是软连接到ncat.nc命令的主要作用如下: 实现任意TCP/ ...
- C++与C语言中struct 与typedef struct 应用区别(摘自csdn mpp_king)
typedef是类型定义的意思.typedef struct 是为了使用这个结构体方便.具体区别在于:若struct node {}这样来定义结构体的话.在申请node 的变量时,需要这样写,stru ...
- PLC入门笔记3
熟悉开发环境 工具下载 官网失效 软件安装 官网失效 第一次PLC之旅 走廊灯两地控制案例 PLC型号确定 梯形图(LAD)和指令表(STL)两种编程方式 程序编辑 符号 变量类型 数据类型 注释 编 ...
- 搭建sftp服务器
sftp采用的是ssh加密隧道,安装性方面较ftp强,而且依赖的是系统自带的ssh服务,不像ftp还需要额外的进行安装 1. 创建sftp组 # groupadd sftp 创建完成之后使用ca ...
- home:76 Uncaught TypeError: AMap.MouseTool is not a constructor
利用高德地图API标记已知点并测量已知点之间的距离,在调用高德地图的类方法的时候会遇到这样的问题 home:76 Uncaught TypeError: AMap.MouseTool is not a ...
- clickhouse 安装部署(linux)
1.安装部署 1.1下载文件 可以按照官网步骤安装 https://clickhouse.tech/docs/zh/getting-started/install/. 这个库目前大小有2G,网络不允许 ...
- C++ 全面总结
1. 基本数据类型:没什么好说的.知道浮点数存储起来不精确.各种类型占的大小在不同平台可能不一样就行了 2. 初始化列表:能用就用.能防止潜在的类型收窄, 3. static_cast 和 dynam ...
- Manage your references to .Net assemblies Dynamics 365 for Operations VS projects
(Dynamics 365 for Operations was previously known as the New Dynamics AX) Dynamics 365 for Operation ...