处理文本数据,主要是通过Seris的str访问。遇到NaN时不做任何处理,保留结果为NaN,遇到数字全部处理为NaN。

str是Seris的方法,DataFrame不能直接使用,但是通过索引选择DataFrame中的某一行或者某一列,结果为Seris,然后就可以使用了。

例如定义一个Seris和DataFrame如下

s = pd.Series([' ab',1,' bb ',np.nan,'bc '])
dic = {'one':[0,2,2,4],'two':[2,np.nan,4,6],'three':['a','b',np.nan,2]}
df = pd.DataFrame(dic,index=['d','e','f','g'])

将上述s全部变成大写字母,将df的列名称变成大写。

s = s.str.upper()
df.columns = df.columns.str.upper()

以下都以Seris做示例,这些方法与python字符串的操作类似

print(s.str.lower())   #将s中的各字符串全部变为小写
print(s.str.upper()) #将s中的各字符串全部变为大写
print(s.str.capitalize()) #将s中的各字符串全部变为首字母大写
print(s.str.len()) #求s中各字符串的长度
print(s.str.count('b')) #求s中的各字符串元素包含几个b
print(s.str.startswith('a')) #判断s中的各字符串是否以a开始
print(s.str.endswith('a')) #判断s中的各字符串是否以a结束
print(s.str.contains('b')) #判断s中的各字符串是否包含b
print(s.str.strip()) #去掉s中字符串元素两边的空格
print(s.str.lstrip()) #去掉s中字符串元素左边的空格
print(s.str.rstrip()) #去掉s中字符串元素右边的空格
print(s.str.replace('原字符','替换字符',1)) #将原字符串替换为指定字符串,默认替换所有满足条件的,n表示替换前n个满足条件的

split()和rsplit()

split()表示从左边开始分割,rsplit()表示从右边分割,分割后的结构为一个列表

s = pd.Series(['a,b,c,d',np.nan,['a..c'],'1,2,3'])
print(s.str.split(',')) #对Seris中的元素按照,分割,即对'a,b,c'、np.nan、['a..c']、'1,2,3'按照,分割
print(s.str.split(',').str[0]) #获取每个元素分割后的第一个值,分割后的结果也为Seris,也需要通过str来获取每个元素
print(s.str.split(',',expand=True,n=1)) #expand为True表示将原列按照分割符拆分为㢵列,n表示拆分次数,默认不拆分,如果拆分默认拆分最多次
# 0 [a, b, c, d]
# 1 NaN
# 2 NaN
# 3 [1, 2, 3]
# dtype: object
# 0 a
# 1 NaN
# 2 NaN
# 3 1
# dtype: object
# 0 1
# 0 a b,c,d
# 1 NaN NaN
# 2 NaN NaN
# 3 1 2,3

python处理文本数据的更多相关文章

  1. 用python处理文本数据 学到的一些东西

    最近写了一个python脚本,用TagMe的api标注文本,并解析返回的json数据.在这个过程中遇到了很多问题,学到了一些新东西,总结一下. 1. csv文件处理 csv是一种格式化的文件,由行和列 ...

  2. Python的文本数据

    字符串的一些方法! 1.text.endswith(".jpg")        如果字符串是以给定子字符串结尾的,就返回值True. 2. text.upper():       ...

  3. python读取文本数据某一列

    import codecs f = codecs.open('test1 - 副本.txt', mode='r', encoding='utf-8') # 打开txt文件,以'utf-8'编码读取 l ...

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

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

  5. [Python] 糗事百科文本数据的抓取

    [Python] 糗事百科文本数据的抓取 源码 https://github.com/YouXianMing/QiuShiBaiKeText import sqlite3 import time im ...

  6. Python之读写文本数据

    知识点不多 一:普通操作  # rt 模式的 open() 函数读取文本文件 # wt 模式的 open() 函数清除覆盖掉原文件,write新文件 # at 模式的 open() 函数添加write ...

  7. python多种格式数据加载、处理与存储

    多种格式数据加载.处理与存储 实际的场景中,我们会在不同的地方遇到各种不同的数据格式(比如大家熟悉的csv与txt,比如网页HTML格式,比如XML格式),我们来一起看看python如何和这些格式的数 ...

  8. python matplotlib plot 数据中的中文无法正常显示的解决办法

    转发自:http://blog.csdn.net/laoyaotask/article/details/22117745?utm_source=tuicool python matplotlib pl ...

  9. 如何使用 scikit-learn 为机器学习准备文本数据

    欢迎大家前往云+社区,获取更多腾讯海量技术实践干货哦~ 文本数据需要特殊处理,然后才能开始将其用于预测建模. 我们需要解析文本,以删除被称为标记化的单词.然后,这些词还需要被编码为整型或浮点型,以用作 ...

随机推荐

  1. egret的WebView实现

    需求 在egret中嵌入网页,类似 . 网上大概有两种思路吧,一种是直接在body里面加入iframe,如:[Egret]里使用iframe标签达到内嵌多个web界面;另一种就是通过模仿htmlinp ...

  2. Python 图像处理 OpenCV (12): Roberts 算子、 Prewitt 算子、 Sobel 算子和 Laplacian 算子边缘检测技术

    前文传送门: 「Python 图像处理 OpenCV (1):入门」 「Python 图像处理 OpenCV (2):像素处理与 Numpy 操作以及 Matplotlib 显示图像」 「Python ...

  3. vs2010调试运行时弹出对话框:系统找不到指定文件

    很多时候,我们会将一些低版本IDE编译过的项目,搬迁到VS2010 ,那么会存在很多编译,调试问题.[1] 编译成功了.可是无法调试 . .       显示 无法启动程序“...........\t ...

  4. CString 十六进制转二进制

    int nValude = 0; CString strtemp("asdb");; sscanf(strtemp.GetBuffer(0),"%x",& ...

  5. BZOJ 4055 Misc

    原题传送门 比较复杂的一道DP. 设两点(i,j)之间最短路为dis[i][j],则 可转化为: 将该式前后分立,可得: 其中,可以单独求出,后面的部分则需要DP. 设为b(x),枚举i,并计算出从i ...

  6. Google 出品的 Java 编码规范,强烈推荐,既权威又科学

    这份文档是 Google Java 编程风格规范的完整定义.当且仅当一个Java源文件符合此文档中的规则, 我们才认为它符合Google的Java编程风格.原文:google.github.io/st ...

  7. ASP.NET网页请求以及处理全过程(反编译工具查看源代码)

    本文是自己查看源码后的个人总结,不保证其准确性.大家可作为参考. 浏览器和服务器之间的通信. 当敲一个域名到浏览器上面,然后回车的时候,如:http://www.baidu.com/index.asp ...

  8. 快讯:asuldb再立功,捕获史前大蛤

    蛤蛤日报7月7日讯 (蛤媒体记者 申蛤 戌蛤) 昨日下午,asuldb成功于生物实验室捕获史前大蛤.据考证,史前大蛤是一种名为楠楠的生物.这种生物体型庞大,距今已有至少1e18年的寿命.这种大蛤行为古 ...

  9. 题解:2018级算法第六次上机 C6-不Nan的过河

    题目描述: 样例: 实现解释: 一道因为没排序做了一个小时没做出来的二分答案模板题(手动呲牙) 知识点: 二分答案,最大值最小化 坑点: 排序,judge(mid)函数内计数的实现 其实从最长一步的最 ...

  10. javascript知识梳理之数据类型

    javascript基础知识(在javascript中 = 是赋值符号) 变量 合法的变量命名规则:大小写英文.数字. $ 和 _ 的组合,且不能用数字开头. var a; //声明变量 var s ...