pandas的分列之不规则字符串及str.extract()

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

然而在实际工作中,有可能有并不是所有的行都有用于分列的键。今天再总结两种:

数据源

上面这组数据中的Latitude是我们需要分列的列。每个数据中都有前缀ab,这是我们不需要的。我们要做的是从第三位开始将订单号切下来,就像对字符串进行的切片操作一样。

用str函数进行切片

很简单吧,先使用.str将‘Latitude‘这一列转换为类似字符串数据类型,然后再用[ ]切片器就行了。跟字符串一样,切片器可以切前面、后面、中间任一位置。

切片1

切片2

切好的数据可以通过简单赋值放到原数据里面:

切片后的数据加入源数据里

这样的方法只能对整齐的数值进行切片,图中的Latitude里的数字与字母的数量不一样,这样进行切片的话就会出错。

像这种数字和字母混合的字符串在处理的时候会比较麻烦,加入我们只需要数字或者字母要怎么处理呢?

这时候就要用到str.extract()函数和正则表达式了。

提取数据:

只匹配数字

提取字母:

只匹配字母

由于提取的字母占用了两行,因此要进行拼接:

只提取字母并进行拼接

注意书写格式:要提取的部分正则表达式要用引号引起来。抽取多个数字或者字母的话要在后面加上‘+‘。

将提取的数据加入到数据源

加入之后的数据并不是数值格式的(属于字符串格式的),因此不能跟正常的数值一样进行运算,需要计算的时候要进行格式的转换。

提取的数据不是数值类型

转换为浮点型

使用map和lambda匿名函数转换格式

作者:探索数据之美
链接:https://www.jianshu.com/p/2e9b0a56405a
来源:简书
著作权归作者所有。

原文地址:https://www.cnblogs.com/ceeyo/p/11956108.html

时间: 2024-09-29 12:58:32

pandas的分列之不规则字符串及str.extract()的相关文章

【Python】Java程序员学习Python(七)— 文本类详解(字符串、str)

如果一个女孩子喜欢看龙猫,那么请珍惜她,呵护她 任何一门语言,字符串总是最基本也是最需要掌握的一个变量,想想入门的Hello World,输出的就是字符串. 官方文档:https://docs.python.org/3/library/stdtypes.html#text-sequence-type-str. 字符串也成为字符序列, 一.表现形式 1.1 基本表现形式 字符串可以用单引号.双引号.三引号引起来,特点如下: 单引号和双引号相似,内部如果还要使用则需要用斜杠进行转义 三引号是三个单引

PHP中常用的字符串函数str

1 字符串大小写函数 strtoupper($str) strtolower($str) 2 字符串切割函数 explode(',',$str) join(',',$str) implode(',',$str) 3 字符串长度函数 strlen($str) 4 字符串重复函数 str_repeat($str,2) 5 字符串首字符大写 ucfirst($str) 6 字符串单词首字符大写 ucwords($str) 7 去除两边指定字符 trim($str,',.?!') ltrim($str,

python 字符串编码 str和unicode 区别以及相互转化 decode('utf-8') encode('utf-8')

python 字符串编码 str和unicode 区别以及相互转化 decode('utf-8') encode('utf-8') 原文地址:https://www.cnblogs.com/zhaoyingjie/p/9133020.html

python判断字符串,str函数isdigit、isdecimal、isnumeric的区别

s为字符串s.isalnum() 所有字符都是数字或者字母s.isalpha() 所有字符都是字母s.isdigit() 所有字符都是数字s.islower() 所有字符都是小写s.isupper() 所有字符都是大写s.istitle() 所有单词都是首字母大写,像标题s.isspace() 所有字符都是空白字符.\t.\n.\r 判断是整数还是浮点数a=123b=123.123 >>>isinstance(a,int)True>>>isinstance(b,floa

Python学习笔记总结1:字符串表示str与repr的用法比较

参考博文地址:http://blog.csdn.net/yyt8yyt8/article/details/7030416 值转化为字符串常用以下三种方法: 1. str函数 str函数转化为合理形式的字符串,方便用户的阅读理解,例如: >> print str("Hello, world!") >> Hello, world! >> print str(10000L) >> 10000 2. repr函数     repr函数会创建字符串

mysql截取字符串substring_index(str,oat,index)

category_search_name类似如下 0-123:服装鞋帽            0-123-137-202:服装鞋帽-0速食品-0方便面 第一个-与第二个-(:)之间的数为一级类目ID(123) substring_index(substring_index(substring_index(category_search_name, '-', 2), '-', -1), ':',1) substring_index(category_search_name, '-', 2)表示截取

Python学习笔记:字符串(str)基本内容

1.创建字符串. 创建字符串就跟创建变量一样很简单.使用引号将字符串内容包含起来就好,可以用单引号,双引号,三引号. >>> S = 'abc' >>> S 'abc' >>> S = "abc" >>> S 'abc' >>> S = """abc""" >>> S 'abc' 使用单引号的时候,内容可以包含双引号,反

python初学day2--(字符串(str)内部功能简介)

Str内部功能简介 1,pitalize(self): 将字符串首字母变成大写 s = 'hello' result = s.capitalize() print(result)              结果: Hello 2,casefold(self): 见字符串变成小写 s = 'HELLO' result = s.casefold() print(result)      结果:hello 3,center(self, width, fillchar=None):经字符串居中,默认用空

Python中字符串表示str与repr

所有通过Python打印的字符串还是被引号括起来的.这是因为Python打印值的时候会保持该值在Python代码中的状态,而不是你希望用户看到的状态,如果使用print 语句,结果就不一样了. >>> "Hello,world"'Hello,world'        # Python打印出来的值是给python理解的,这里python理解为字符串,所以带着引号 >>> print "Hello,world"Hello,world