前言

当我们遇到一个超级大的DataFrame,里面有一列类型为字符串,要将每一行的字符串都用同一方式进行处理,一般会想到遍历整合DataFrame,但是如果直接这样做的话将会耗费很长时间,有时几个小时都处理不完。于是就有了本篇文章所要分享给大家的:pandas快速处理字符串方法。

提示:为方便快捷地解决问题,本文仅介绍主要功能。

一、向量化字符串操作简介

向量化操作简化了纯数值的数组操作语法,我们不需要再担心数组的长度或维度,只需要把中心放在操作上面。而对字符串的向量化需要工具包的支持,如Numpy就没办法直接对字符串进行向量化操作,只能通过繁琐的循环来实现。Pandas则可以很好的处理这类问题。

二、str方法的简介

Python会处理字符串起来会很容易,作为工具包的Pandas同样可以简单快速的处理字符串,几乎把Python内置的字符串方法都给复制过来了,这种方法就是Pandas内置的str方法,通俗来说就可以将series和index对象中包含字符串的部分简单看作单个字符串处理,达到批量简单快速处理的目的。

三、str方法介绍

1、类似Python处理字符串的方法

与Python内置的字符串处理方法类似,包含以下函数:len()lower()translate()islower()

ljust()upper()startswith()isupper()

rjust()find()endswith()isnumeric()

center()rfind()isalnum()isdecimal()

zfill()index()isalpha()split()

strip()rindex()isdigit()rsplit()

rstrip()capitalize()isspace()partition()

lstrip()swapcase()istitle()rpartition()

除此函数之外,也可以直接通过切片方法对字符串进行批量处理。下面是例子。

import pandas as pd

str_data = pd.DataFrame({'name':['Verne Raymond','Chapman Becher','Patrick George','Saxon MacArthur'],

'age':[18,22,21,16]})

Out[0]:

name age

0 Verne Raymond 18

1 Chapman Becher 22

2 Patrick George 21

3 Saxon MacArthur 16

len()函数使用:

str_data['name'].str.len()

Out[1]:

0 13

1 14

2 14

3 15

Name: name, dtype: int64

split()函数使用:

str_data['name'].str.split(' ')

str_data['name'].str.split(' ',expand=True)#将分开的字符串放在两列

Out[2]:

0 [Verne, Raymond]

1 [Chapman, Becher]

2 [Patrick, George]

3 [Saxon, MacArthur]

Name: name, dtype: object

Out[3]:

0 1

0 Verne Raymond

1 Chapman Becher

2 Patrick George

3 Saxon MacArthur

其他函数都是同样的方式,函数具体参数可以参考官方文档:pandas.Series.

直接对字符串进行切片:

str_data['name'].str[:5]

Out[4]:

0 Verne

1 Chapm

2 Patri

3 Saxon

Name: name, dtype: object

2、使用正则表达式方法方法描述

match()在每个元素上调用re.match(),返回布尔值

extract()在每个元素上调用re.match(),返回作为字符串的每个分组

findall()在每个元素上调用re.findall()

replace()将模式串的每次出现替换为一些其它字符串

contains()在每个元素上调用re.search(),返回布尔值

count()统计模式串的出现次数

split()等价于str.split(),但是接受正则表达式

rsplit()等价于str.rsplit(),但是接受正则表达式

下面是例子:

replace()函数使用

str_data['name'].str.replace(' ','-')

Out[5]:

0 Verne-Raymond

1 Chapman-Becher

2 Patrick-George

3 Saxon-MacArthur

Name: name, dtype: object

extract()函数使用

str_data['name'].str.extract('([A-Za-z]+)')

Out[6]:

0

0 Verne

1 Chapman

2 Patrick

3 Saxon

正则表达式方法这里不再赘述。

四、总结

这里介绍了Pandas在处理字符串上提供的一些快速处理方法,将重点部分进行阐述,如有错误请大家指正。后面还会讲解类似快速处理数据的方法如:map()、apply()、applymap()等。不知者:pandas: DataFrame 将时间按小时分钟等方式聚合​zhuanlan.zhihu.com

更多内容敬请关注我的CSDN博客:

pandas 字符串切片后保存_pandas:快速处理字符串方法相关推荐

  1. pandas 字符串切片后保存_pandas的分列之不规则字符串及str.extract()

    在上一篇文章中,我们总结了分列的一种方式:当所有行在需要的分列的地方都是相同的字母.符号.空格等等的时候,我们可以使用str.split()直接将所有行分成两列. 然而在实际工作中,有可能有并不是所有 ...

  2. pandas 字符串切片后保存_我擦~字符串转字节切片后,切片的容量竟然千奇百怪...

    以下文章来源于新世界杂货铺 ,作者许文 新世界杂货铺 作为一名Gopher, 我愿称之为Go的干(杂)货铺子! 神奇的现象 切片, 切片, 又是切片! 今天遇到的神奇问题和切片有关, 具体怎么个神奇法 ...

  3. 字符串加密后md5为 0exxxx 的字符串

    字符串加密后md5为 0exxxx 的字符串 (x 必须是 10 进制数字) 列表 字符串 MD5 QNKCDZO 0e830400451993494058024219903391 240610708 ...

  4. pandas自动创建文件夹_pandas快速入门

    pandas有两类数据对象:dataframe和series.Series是一个带标签的一维数组,通常索引在左,值在右.dataframe是一个带标签的二维数组,可以理解成series的字典,共用索引 ...

  5. python中字符串切片取奇数_Python中的字符串切片(截取字符串)的详解

    Python中的字符串切片(截取字符串)的详解 字符串索引示意图 字符串切片也就是截取字符串,取子串 Python中字符串切片方法 字符串[开始索引:结束索引:步长] 切取字符串为开始索引到结束索引- ...

  6. c语言 字符串切片重组成完整,完美分割字符串,实现字符串的splict功能

    class Str:Client_C { string val; string[] str = new string[100]; public void StrT1() { //1.正常情况 //2. ...

  7. php要字符串的后四位,php如何截取字符串后四位

    摘要 腾兴网为您分享:php如何截取字符串后四位,找乐助手,盈益云,我爱我家,手电筒等软件知识,以及51编辑,v380监控,edge浏览器,excel软件,地铁跑酷iphone版,燕大校园网,德军总部 ...

  8. java 判断字符串重排后是否等于另一个字符串,包括空格符

    大家好,很高兴能和你认识,这是本人第一篇博文,本着提升自我而开始的博客之旅 下面只要写的是java字符串重排后是否相等的. public static void main(String [] args ...

  9. python pandas写入数据后保存_python读取MySQL数据使用pandas写入到csv,并保存列名

    实现的功能:通过pymysql连接MySQL数据库,查询所需数据,然后使用pandas写入到csv文件,并且写入包含数据列名. import sys import pandas as pd impor ...

最新文章

  1. 清华系“AI帮”崛起,要驱动1500亿元产业规模
  2. 排查链接是否失效_Linux服务器入侵检测排查方法
  3. WEB文件上传之JQuery ajaxfileupload插件使用(二)
  4. Java Jvm虚拟机的内存模型概述 《对Java的分析总结》(一)
  5. [转帖]升级 Ubuntu,解决登录时提示有软件包可以更新的问题
  6. regression+classification
  7. php 过滤入库不可见字符,php如何过滤不可见字符
  8. 网站设计中很重要的概念div+浮动
  9. 用homebrew 升级安装python3.7 之后系统的python版本还是旧的怎么办
  10. vs安装msdn安装文档
  11. 关于Kav7的离线升级
  12. ASCⅡ码与字符的相互转化
  13. 计算机管理里找不到固态硬盘,教大家电脑插上固态硬盘提示找不到设备怎么办...
  14. Python爬虫实现爬取糗事百科段子 (26行代码简单实现)
  15. 百度BAE上能装什么pHp框架,百度Bae云平台安装dedecms图文教程
  16. 004_simulink建立子系统
  17. 乐高教育版45544零件---分类识别
  18. 【u盘提示:驱动器未格式化】如何解决?
  19. Web 开发最有用的50款 jQuery 插件集锦——《图片特效篇》
  20. Word和WPS中引入Mathtype的常见问题

热门文章

  1. 蜜罐诱捕——KFSensor
  2. 《红楼梦》金陵十二钗判词及赏析
  3. morph 原理实现
  4. 最全的世界汽车标志欣赏和LOGO释义
  5. I2C接口的KSZ9897 Switch
  6. 前端|Layui实现表单
  7. 关于我发表了TalentOrg的面试文章而被官方的人找上门
  8. 马科维茨的均值一方差组合模型(转载)
  9. 理财入门:基金(简述,主要是指数基金)
  10. 美团二面:让你怀疑人生的数据结构算法夺命连环17问~