pandas的分列操作str.split()

本文主要是在pandas中如何对字符串进行切分。我们考虑一下下面的应用场景。
在这里插入图片描述
这个是我们的数据集(data),可以看到,数据集中某一列(name)是某个行业的分类。各个行业之间用符号 ‘|’分割。
我们要把用每个‘|’进行分割的内容抽取出来。
pandas有个一步到到位的方法,非常方便。

import pandas as pd
data['name'].str.split('|',expand=True)

关键是参数expand,这个参数取True时,会把切割出来的内容当做一列。 如果不需要pandas为你分好列,expand=False就可以了。
通过上面一步,我们可以得到下面的结果。
在这里插入图片描述

这个时候已经切成3列了。

然后,我们如果只想要第一列的话,只需要做:

data['name'].str.split('|',expand=True)[0]

原文链接:

  1. pandas 如何分割字符
  2. 5、pandas的字符串的分割之str.split()
### 使用 Pandas 进行列分割 在处理数据时,有时需要将单个列中的内容拆分为多个新列。Pandas 提供了几种实现此目的的方法。 #### 方法一:使用 `str.split` 函数 对于字符串类型的列,可以利用 `str.split()` 来按照指定分隔符切割字符串,并返回一个新的 DataFrame 或 Series 对象。下面是一个简单的例子: ```python import pandas as pd # 创建示例DataFrame df = pd.DataFrame({'names': ['John Doe', 'Jane Smith']}) # 利用split方法按空格划分姓名列为两个独立的新列 result = df['names'].str.split(' ', expand=True) print(result) ``` 这段代码会创建一个包含两列的结果集,其中每一列表示原字符串被分开后的部分[^1]。 如果希望保留原始列并给新的列命名,则可以通过如下方式完成操作: ```python # 将结果赋值回原DataFrame中作为新增加的两列 df[['first_name', 'last_name']] = result print(df) ``` 这样就可以得到扩展了名字和姓氏字段的数据框。 #### 方法二:通过正则表达式进行复杂模式匹配下的切分 当面对更复杂的文本结构时,比如电子邮件地址或者电话号码等格式化信息,可能需要用到基于正则表达式的解析来提取所需的部分。此时可借助于 `extractall()` 和其他相关功能来进行高级别的字符串处理[^4]。 例如要从邮箱地址里分离出用户名与域名: ```python email_df = pd.DataFrame({ 'emails': [ 'john.doe@example.com', 'jane.smith@anotherdomain.org' ] }) pattern = r'(?P<username>[^@]+)@(?P<domain>.+)' parsed_emails = email_df['emails'].str.extract(pattern, expand=True) print(parsed_emails) ``` 这里定义了一个带有捕获组(即括号内的部分)的正则表达式模式,用于识别邮件的不同组成部分;随后调用了 `str.extract()` 方法传入该模式即可获得相应的子串集合。 以上就是关于如何运用 Pandas 库执行列分裂的一些基本介绍以及具体的应用实例说明。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值