在本章中,我们将使用基本系列/索引来讨论字符串操作。在随后的章节中,将学习如何将这些字符串函数应用于数据帧(DataFrame)。

Pandas提供了一组字符串函数,可以方便地对字符串数据进行操作。 最重要的是,这些函数忽略(或排除)丢失/NaN值。

几乎这些方法都使用Python字符串函数(请参阅: http://docs.python.org/3/library/stdtypes.html#string-methods )。 因此,将Series对象转换为String对象,然后执行该操作。

下面来看看每个操作的执行和说明。

编号 函数 描述
1 lower() Series/Index中的字符串转换为小写。
2 upper() Series/Index中的字符串转换为大写。
3 len() 计算字符串长度。
4 strip() 帮助从两侧的系列/索引中的每个字符串中删除空格(包括换行符)。
5 split(' ') 用给定的模式拆分每个字符串。
6 cat(sep=' ') 使用给定的分隔符连接系列/索引元素。
7 get_dummies() 返回具有单热编码值的数据帧(DataFrame)。
8 contains(pattern) 如果元素中包含子字符串,则返回每个元素的布尔值True,否则为False
9 replace(a,b) 将值a替换为值b
10 repeat(value) 重复每个元素指定的次数。
11 count(pattern) 返回模式中每个元素的出现总数。
12 startswith(pattern) 如果系列/索引中的元素以模式开始,则返回true
13 endswith(pattern) 如果系列/索引中的元素以模式结束,则返回true
14 find(pattern) 返回模式第一次出现的位置。
15 findall(pattern) 返回模式的所有出现的列表。
16 swapcase 变换字母大小写。
17 islower() 检查系列/索引中每个字符串中的所有字符是否小写,返回布尔值
18 isupper() 检查系列/索引中每个字符串中的所有字符是否大写,返回布尔值
19 isnumeric() 检查系列/索引中每个字符串中的所有字符是否为数字,返回布尔值。

现在创建一个系列,看看上述所有函数是如何工作的。

import pandas as pd
import numpy as np s = pd.Series(['Tom', 'William Rick', 'John', 'Alber@t', np.nan, '1234','SteveMinsu']) print (s)
Python

执行上面示例代码,得到以下结果 -

0             Tom
1 William Rick
2 John
3 Alber@t
4 NaN
5 1234
6 SteveMinsu
dtype: object
Shell

1. lower()函数示例

import pandas as pd
import numpy as np s = pd.Series(['Tom', 'William Rick', 'John', 'Alber@t', np.nan, '1234','SteveMinsu']) print (s.str.lower())
Python

执行上面示例代码,得到以下结果 -

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

2. upper()函数示例

import pandas as pd
import numpy as np s = pd.Series(['Tom', 'William Rick', 'John', 'Alber@t', np.nan, '1234','SteveMinsu']) print (s.str.upper())
Python

执行上面示例代码,得到以下结果 -

0             TOM
1 WILLIAM RICK
2 JOHN
3 ALBER@T
4 NaN
5 1234
6 STEVESMITH
dtype: object
Shell

3. len()函数示例

import pandas as pd
import numpy as np s = pd.Series(['Tom', 'William Rick', 'John', 'Alber@t', np.nan, '1234','SteveMinsu'])
print (s.str.len())
Python

执行上面示例代码,得到以下结果 -

0     3.0
1 12.0
2 4.0
3 7.0
4 NaN
5 4.0
6 10.0
dtype: float64
Shell

4. strip()函数示例

import pandas as pd
import numpy as np
s = pd.Series(['Tom ', ' William Rick', 'John', 'Alber@t'])
print (s)
print ("=========== After Stripping ================")
print (s.str.strip())
Python

执行上面示例代码,得到以下结果 -

0             Tom
1 William Rick
2 John
3 Alber@t
dtype: object
=========== After Stripping ================
0 Tom
1 William Rick
2 John
3 Alber@t
dtype: object
Shell

5. split(pattern)函数示例

import pandas as pd
import numpy as np
s = pd.Series(['Tom ', ' William Rick', 'John', 'Alber@t'])
print (s)
print ("================= Split Pattern: ==================")
print (s.str.split(' '))
Python

执行上面示例代码,得到以下结果 -

0             Tom
1 William Rick
2 John
3 Alber@t
dtype: object
================= Split Pattern: ==================
0 [Tom, ]
1 [, William, Rick]
2 [John]
3 [Alber@t]
dtype: object
Shell

6. cat(sep=pattern)函数示例

import pandas as pd
import numpy as np s = pd.Series(['Tom ', ' William Rick', 'John', 'Alber@t']) print (s.str.cat(sep=' <=> '))
Python

执行上面示例代码,得到以下结果 -

Tom  <=>  William Rick <=> John <=> Alber@t
Shell

7. get_dummies()函数示例

import pandas as pd
import numpy as np s = pd.Series(['Tom ', ' William Rick', 'John', 'Alber@t']) print (s.str.get_dummies())
Python

执行上面示例代码,得到以下结果 -

    William Rick  Alber@t  John  Tom
0 0 0 0 1
1 1 0 0 0
2 0 0 1 0
3 0 1 0 0
Shell

8. contains()函数示例

import pandas as pd
s = pd.Series(['Tom ', ' William Rick', 'John', 'Alber@t'])
print (s.str.contains(' '))
Python

执行上面示例代码,得到以下结果 -

0     True
1 True
2 False
3 False
dtype: bool
Shell

9. replace(a,b)函数示例

import pandas as pd
s = pd.Series(['Tom ', ' William Rick', 'John', 'Alber@t'])
print (s)
print ("After replacing @ with $: ============== ")
print (s.str.replace('@','$'))
Python

执行上面示例代码,得到以下结果 -

0             Tom
1 William Rick
2 John
3 Alber@t
dtype: object
After replacing @ with $: ==============
0 Tom
1 William Rick
2 John
3 Alber$t
dtype: object
Shell

10. repeat(value)函数示例

import pandas as pd

s = pd.Series(['Tom ', ' William Rick', 'John', 'Alber@t'])

print (s.str.repeat(2))
Python

执行上面示例代码,得到以下结果 -

0                      Tom Tom
1 William Rick William Rick
2 JohnJohn
3 Alber@tAlber@t
dtype: object
Shell

11. count(pattern)函数示例

import pandas as pd

s = pd.Series(['Tom ', ' William Rick', 'John', 'Alber@t'])

print ("The number of 'm's in each string:")
print (s.str.count('m'))
Python

执行上面示例代码,得到以下结果 -

The number of 'm's in each string:
0 1
1 1
2 0
3 0
dtype: int64
Shell

12. startswith(pattern)函数示例

import pandas as pd

s = pd.Series(['Tom ', ' William Rick', 'John', 'Alber@t'])

print ("Strings that start with 'T':")
print (s.str. startswith ('T'))
Python

执行上面示例代码,得到以下结果 -

Strings that start with 'T':
0 True
1 False
2 False
3 False
dtype: bool
Shell

13. endswith(pattern)函数示例

import pandas as pd
s = pd.Series(['Tom ', ' William Rick', 'John', 'Alber@t'])
print ("Strings that end with 't':")
print (s.str.endswith('t'))
Python

执行上面示例代码,得到以下结果 -

Strings that end with 't':
0 False
1 False
2 False
3 True
dtype: bool
Shell

14. find(pattern)函数示例

import pandas as pd
s = pd.Series(['Tom ', ' William Rick', 'John', 'Alber@t'])
print (s.str.find('e'))
Python

执行上面示例代码,得到以下结果 -

0   -1
1 -1
2 -1
3 3
dtype: int64
Shell

注意:-1表示元素中没有这样的模式可用。

15. findall(pattern)函数示例

import pandas as pd

s = pd.Series(['Tom ', ' William Rick', 'John', 'Alber@t'])
print (s.str.findall('e'))
Python

执行上面示例代码,得到以下结果 -

0     []
1 []
2 []
3 [e]
dtype: object
Shell

空列表([])表示元素中没有这样的模式可用。

16. swapcase()函数示例

import pandas as pd

s = pd.Series(['Tom', 'William Rick', 'John', 'Alber@t'])
print (s.str.swapcase())
Python

执行上面示例代码,得到以下结果 -

0             tOM
1 wILLIAM rICK
2 jOHN
3 aLBER@T
dtype: object
Shell

17. islower()函数示例

import pandas as pd

s = pd.Series(['Tom', 'William Rick', 'John', 'Alber@t'])
print (s.str.islower())
Python

执行上面示例代码,得到以下结果 -

0    False
1 False
2 False
3 False
dtype: bool
Shell

18. isupper()函数示例

import pandas as pd

s = pd.Series(['TOM', 'William Rick', 'John', 'Alber@t'])

print (s.str.isupper())
Python

执行上面示例代码,得到以下结果 -

0    True
1 False
2 False
3 False
dtype: bool
Shell

19. isnumeric()函数示例

import pandas as pd
s = pd.Series(['Tom', '1199','William Rick', 'John', 'Alber@t'])
print (s.str.isnumeric())
Python

执行上面示例代码,得到以下结果 -

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

Pandas字符串和文本数据的更多相关文章

  1. pandas处理大文本数据

    当数据文件是百万级数据时,设置chunksize来分批次处理数据 案例:美国总统竞选时的数据分析 读取数据 import numpy as np import pandas as pdfrom pan ...

  2. 机器学习入门-文本数据-构造词频词袋模型 1.re.sub(进行字符串的替换) 2.nltk.corpus.stopwords.words(获得停用词表) 3.nltk.WordPunctTokenizer(对字符串进行分词操作) 4.np.vectorize(对函数进行向量化) 5. CountVectorizer(构建词频的词袋模型)

    函数说明: 1. re.sub(r'[^a-zA-Z0-9\s]', repl='', sting=string)  用于进行字符串的替换,这里我们用来去除标点符号 参数说明:r'[^a-zA-Z0- ...

  3. 采用Json字符串,往服务器回传大量富文本数据时,需要注意的地方,最近开发时遇到的问题。

    json字符串中存在常规的用户输入的字符串,和很多的富文本样式标签(用户不能直接看到,点击富文本编辑器中的html源码按钮能看到),例如下面的: <p><strong>富文本& ...

  4. Python文本数据互相转换(pandas and win32com)

    (工作之后,就让自己的身心都去休息吧) 今天介绍一下文本数据的提取和转换,这里主要实例的转换为excel文件(.xlsx)转换world文件(.doc/docx),同时需要使用win32api,同py ...

  5. SQL server 存储过程 C#调用Windows CMD命令并返回输出结果 Mysql删除重复数据保留最小的id C# 取字符串中间文本 取字符串左边 取字符串右边 C# JSON格式数据高级用法

    create proc insertLog@Title nvarchar(50),@Contents nvarchar(max),@UserId int,@CreateTime datetimeasi ...

  6. 【转载】socket通信-C#实现tcp收发字符串文本数据

    在日常碰到的项目中,有些场景需要发送文本数据,也就是字符串,比如简单的聊天文字,JSON字符串等场景.那么如何如何使用SharpSocket来收发此类数据呢?其中要掌握的关键点是什么呢? 点击查看原博 ...

  7. JAVASE02-Unit08: 文本数据IO操作 、 异常处理

    Unit08: 文本数据IO操作 . 异常处理 * java.io.ObjectOutputStream * 对象输出流,作用是进行对象序列化 package day08; import java.i ...

  8. 《Python CookBook2》 第一章 文本 - 过滤字符串中不属于指定集合的字符 && 检查一个字符串是文本还是二进制

    过滤字符串中不属于指定集合的字符 任务: 给定一个需要保留的字符串的集合,构建一个过滤函数,并可将其应用于任何字符串s,函数返回一个s的拷贝,该拷贝只包含指定字符集合中的元素. 解决方案: impor ...

  9. MySQL中游标使用以及读取文本数据

    原文:MySQL中游标使用以及读取文本数据 前言 之前一直没有接触数据库的学习,只是本科时候修了一本数据库基本知识的课.当时只对C++感兴趣,天真的认为其它的课都没有用,数据库也是半懂不懂,胡乱就考试 ...

随机推荐

  1. Java版斯诺克开源分享

    Java版斯诺克开源分享 这个小程序是我平时无聊写着玩的,在网盘里躺了好久了,今天就把它拿出来跟大家分享一下,下面是游戏截图: 请不要吐槽这个界面,斯诺克的球台是我从qq游戏里面截取的... 下面是源 ...

  2. Backtracking is a form of recursion.

    w https://www.cis.upenn.edu/~matuszek/cit594-2012/Pages/backtracking.html Starting at Root, your opt ...

  3. mysql主从同步因断电产生的不能同步问题

    偶尔因为断电导致mysql slave 出现复制错误“Could not parse relay log event entry” Could not parse relay log event en ...

  4. java连接elastic search 9300

    java连接elastic search 导入jar包:https://www.elastic.co/guide/en/elasticsearch/client/java-api/5.5/_maven ...

  5. 一.MySQL入门基础

    1.关于cmd界面无法启动mysql: 1)必须要使用管理员身份运行cmd程序 2)如果下载MySQL5.7版本的,在windows服务上Mysql的名字默认是MySQL57,因此在cmd运行 net ...

  6. Diango思维图

    1,http 2,Django生命周期 3,Django部分命令 4,待续...

  7. HTTP协议简要介绍

    1. 网络基础 TCP/IP 通常使用的网络是在TCP/IP协议簇基础上运作的. HTTP属于它内部的一个子集. TCP/IP分为4个层次, 应用层, 传输层, 网络层, 链路层. (Applicat ...

  8. 吴超老师课程--Hbase介绍和伪分布式安装

    1.HBase(NoSQL)的数据模型1.1 表(table),是存储管理数据的.1.2 行键(row key),类似于MySQL中的主键.     行键是HBase表天然自带的.1.3 列族(col ...

  9. mysql第三天作业

    1.将所有的课程的名称以及对应的任课老师姓名打印出来,如下:SELECT cname,tname FROM course LEFT JOIN teacher ON teacher.tid=course ...

  10. this与super关键字总结

    Ⅰ.this 用类名定义一个变量的时候,定义的应该只是一个引用,外面可以通过这个引用来访问这个类里面的属性和方法.类里面也有一个引用来访问自己的属性和方法,这个引用就是 this 对象,它可以在类里面 ...