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

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

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

切片1

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

切片后的数据加入源数据里
这样的方法只能对整齐的数值进行切片,图中的Latitude里的数字与字母的数量不一样,这样进行切片的话就会出错。
像这种数字和字母混合的字符串在处理的时候会比较麻烦,加入我们只需要数字或者字母要怎么处理呢?
这时候就要用到str.extract()函数和正则表达式了。
提取数据:

只匹配数字
提取字母:

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

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

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

提取的数据不是数值类型

转换为浮点型

使用map和lambda匿名函数转换格式
作者:探索数据之美
链接:https://www.jianshu.com/p/2e9b0a56405a
来源:简书
著作权归作者所有。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律