pandas文本处理
import pandas as pd
import numpy as np s = pd.Series(['A', 'b', 'c', 'bbhello', '', np.nan, 'hj'])
df = pd.DataFrame({'key1': list('abcdef'),
'key2': ['hee', 'fv', 'w', 'hija', '', np.nan]})
print(s)
print('-'*8)
print(df)
print('-'*8)
'''
0 A
1 b
2 c
3 bbhello
4 123
5 NaN
6 hj
dtype: object
--------
key1 key2
0 a hee
1 b fv
2 c w
3 d hija
4 e 123
5 f NaN
--------
'''
# 直接通过.str调用字符串方法,可以对Series、DataFrame使用,自动过滤NaN值
print(s.str.count('b'))
'''
0 0.0
1 1.0
2 0.0
3 2.0
4 0.0
5 NaN
6 0.0
dtype: float64
'''
print(df['key2'].str.upper())
'''
0 HEE
1 FV
2 W
3 HIJA
4 123
5 NaN
Name: key2, dtype: object
'''
# 将所有的列名改为大写
df.columns = df.columns.str.upper()
print(df)
'''
KEY1 KEY2
0 a hee
1 b fv
2 c w
3 d hija
4 e 123
5 f NaN
'''
# 字符串常用方法 --lower,upper,len,starswith,endswith print('小写,lower()',s.str.lower())
print('大写,upper()',s.str.upper())
print('长度,len()',s.str.len())
print('判断起始是否为b,startswith()',s.str.startswith('b'))
print('判断结束是否为"o",endswith()',s.str.endswith('o'))
'''
小写,lower() 0 a
1 b
2 c
3 bbhello
4 123
5 NaN
6 hj
dtype: object
大写,upper() 0 A
1 B
2 C
3 BBHELLO
4 123
5 NaN
6 HJ
dtype: object
长度,len() 0 1.0
1 1.0
2 1.0
3 7.0
4 3.0
5 NaN
6 2.0
dtype: float64
判断起始是否为b,startswith() 0 False
1 True
2 False
3 True
4 False
5 NaN
6 False
dtype: object
判断结束是否为"o",endswith() 0 False
1 False
2 False
3 True
4 False
5 NaN
6 False
dtype: object
'''
# 字符串常用方法 --strip s2 = pd.Series([' jack', 'jill ', ' jesse '])
df2 = pd.DataFrame(np.random.randn(3, 2), columns=[' A ', ' B'], index=range(3))
print(s2)
print('-'*8)
print(df2)
print('-'*8)
'''
0 jack
1 jill
2 jesse
dtype: object
--------
A B
0 -0.333042 -0.467830
1 0.605179 -0.658910
2 -0.490881 -0.639754
--------
'''
print(s2.str.strip())
print('-'*8)
print(s2.str.lstrip())
print('-'*8)
print(s2.str.rstrip())
'''
0 jack
1 jill
2 jesse
dtype: object
--------
0 jack
1 jill
2 jesse
dtype: object
--------
0 jack
1 jill
2 jesse
dtype: object
'''
df2.columns = df2.columns.str.strip()
print(df2)
'''
A B
0 -0.801508 1.650113
1 -0.669556 -1.195999
2 0.277338 -0.727100 ''' # 字符串常用方法 -- replace()
df3 = pd.DataFrame(np.random.randn(3, 2), columns=[' A a', ' B b'], index=range(3))
df3.columns = df3.columns.str.replace(' ', '-', n=2)
print(df3)
'''
-A-a -B- b
0 -1.225938 0.296270
1 0.769037 2.794032
2 -1.686818 0.109314
'''
# 字符串常用方法 -- spilt、rsplit
s4 = pd.Series(['a,b,c', '1,2,3', ['a,,,c'], np.nan])
print(s4)
print(s4.str.split(','))
'''
0 a,b,c
1 1,2,3
2 [a,,,c]
3 NaN
dtype: object
0 [a, b, c]
1 [1, 2, 3]
2 NaN
3 NaN
dtype: object
'''
# 直接索引得到一个list
# 可以使用get或[]符号访问拆散列表中的元素
print(s4.str.split(',').str[0])
print(s4.str.split(',').str.get(0))
'''
0 a
1 1
2 NaN
3 NaN
dtype: object
0 a
1 1
2 NaN
3 NaN
dtype: object
''' # 可以使用expand可以轻松扩展此操作以返回DataFrame
# n 参数限制分割数
print(s4.str.split(','))
print('-' * 8)
print(s4.str.split(',', expand=True))
'''
0 [a, b, c]
1 [1, 2, 3]
2 NaN
3 NaN
dtype: object
--------
0 1 2
0 a b c
1 1 2 3
2 NaN NaN NaN
3 NaN NaN NaN
'''
print(s4.str.split(',', expand=True, n=1))
'''
0 1
0 a b,c
1 1 2,3
2 NaN NaN
3 NaN NaN
'''
# rsplit类似于split,反向工作,即从字符串的末尾到字符串的开头
print(s4.str.split(',', expand=True, n=1))
print('-' * 8)
print(s4.str.rsplit(',', expand=True, n=1))
'''
0 1
0 a b,c
1 1 2,3
2 NaN NaN
3 NaN NaN
--------
0 1
0 a,b c
1 1,2 3
2 NaN NaN
3 NaN NaN
''' df4 = pd.DataFrame({'key1': ['a,b,c', '1,2,3', [':,,, ']],
'key2': ['a-b-c', '1-2-3', [':-.- ']]})
print(df4)
print('-'*8)
print(df4['key2'].str.split('-'))
'''
key1 key2
0 a,b,c a-b-c
1 1,2,3 1-2-3
2 [:,,, ] [:-.- ]
--------
0 [a, b, c]
1 [1, 2, 3]
2 NaN
Name: key2, dtype: object
'''
# 通过索引获取分割后的元素
df4['k201'] = df4['key2'].str.split('-').str[0]
df4['k202'] = df4['key2'].str.split('-').str[1]
df4['k203'] = df4['key2'].str.split('-').str[2]
print(df4)
'''
key1 key2 k201 k202 k203
0 a,b,c a-b-c a b c
1 1,2,3 1-2-3 1 2 3
2 [:,,, ] [:-.- ] NaN NaN NaN
'''
pandas文本处理的更多相关文章
- Pandas文本操作之读取操作
读写文本格式的数据 pandas中的解析函数 函数 说明 read_csv 从文件.url.文件型对象中加载带分隔符的数据,默认分隔符为逗号 read_table 从文件.url.文件型对象中加载带分 ...
- pynlpir + pandas 文本分析
pynlpir是中科院发布的一个分词系统,pandas(Python Data Analysis Library) 是python中一个常用的用来进行数据分析和统计的库,利用这两个库能够对中文文本数据 ...
- Pandas文本数据处理
先初始化数据 import pandas as pd import numpy as np index = pd.Index(data=["Tom", "Bob" ...
- Pandas 文本数据
Pandas针对字符串配备的一套方法,使其易于对数组的每个元素(字符串)进行操作. 1.通过str访问,且自动排除丢失/ NA值 # 通过str访问,且自动排除丢失/ NA值 s = pd.Serie ...
- Pandas: 如何将一列中的文本拆分为多行? | Python
Pandas: 如何将一列中的文本拆分为多行? 在数据处理过程中,经常会遇到以下类型的数据: 在同一列中,本该分别填入多行中的数据,被填在一行里了,然而在分析的时候,需要拆分成为多行. 在上图中,列名 ...
- Python文本数据互相转换(pandas and win32com)
(工作之后,就让自己的身心都去休息吧) 今天介绍一下文本数据的提取和转换,这里主要实例的转换为excel文件(.xlsx)转换world文件(.doc/docx),同时需要使用win32api,同py ...
- pandas 处理文本数据
import pandas as pd import numpy as np 常规的字符串操作 s = pd.Series(['A',"B","C"," ...
- 基于pandas python sklearn 的美团某商家的评论分类(文本分类)
美团店铺评价语言处理以及分类(NLP) 第一篇 数据分析部分 第二篇 可视化部分, 本文是该系列第三篇,文本分类 主要用到的包有jieba,sklearn,pandas,本篇博文主要先用的是词袋模型( ...
- 使用Pandas: str.replace() 进行文本清洗
前段时间参加了Kaggle上的Mercari Price Suggestion Challenge比赛,收获良多,过些时候准备进行一些全面的总结,本篇文章先谈一个比赛中用到的小技巧. 这个比赛数据中有 ...
随机推荐
- Python: PS 图像特效 — 抽象画风
今天介绍一种基于图像分割和color map 随机采样生成一种抽象画风的图像特效,简单来说,就是先生成一张 color map 图,颜色是渐变的,然后针对要处理的图像,进行分割,这里用的是 SLIC ...
- Probabilistic interpretation
Under the previous probabilistic assumptions on the data, least-squares regression corresponds to fi ...
- uva10870
https://vjudge.net/problem/UVA-10870 裸的矩阵快速幂 注意系数矩阵在前面 因为系数矩阵为d*d 方程矩阵为d * 1 放反了就是d * 1 d * d 不符合矩阵乘 ...
- java笔记线程方式1获取对象名称
* 如何获取线程对象的名称呢? * public final String getName():获取线程的名称. * 如何设置线程对象的名称呢? * public final void setName ...
- [Swift通天遁地]一、超级工具-(18)创建强大、灵活的日期时间拾取器
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...
- LoadRunner监控Linux配置教程
LoadRunner监控Linux资源时弹出如下错误: Monitor name :UNIX Resources. Cannot initialize the monitoring on 192.16 ...
- 乐字节Java8核心特性之方法引用
大家好,我是乐字节的小乐,上一次我们说到了Java8核心特性之函数式接口,接下来我们继续了解Java8又一核心特性--方法引用. Java8 中引入方法引用新特性,用于简化应用对象方法的调用, 方法引 ...
- PHP的包依赖管理工具Composer简介
composer是一个基于项目的依赖管理器,负责将php项目的所依赖的包和库安装在项目的目录中,默认不会不会安装任何数据到全局.他用于取代之前pear工具 1 安装Composer curl -sS ...
- git 详细部署及其应用
第1章 版本控制系统 自动生成备份.随时回滚.知道改动的地方. 1.1 svn和git的区别 1.1.1 svn 集中式的版本控制系统,只有一个中央数据仓库,如果中央数据库仓库挂了或者不可访问,所有的 ...
- linux学习之路7 linux下获取帮助
help 帮助 ls -h或者ls - -help man 最常用的帮助命令 man (+数字 )+命令 (数字代表文档帮助类型) man -k 关键字 可以用来查询包含该关键字的文档 info 与m ...