拆分 pandas DataFrame 元素中的字符串并重新组合列表的一部分

2024-02-29

我试图弄清楚如何在 pandas 元素中拆分字符串,然后重新组合拆分字符串的一部分。我有以下代码:

import pandas as pd

df = pd.DataFrame({'code': ['PC001-S002_D_CFI4-1_NN','PC001-S002_D_CFI4-1_NN','PC001-S002_D_CFI4-1_NN',
                            'PC001-S002_D_CFI4-1_ER','PC001-S002_D_CFI4-1_ER','PC001-S002_D_CFI4-1_ER']})

df['domain'] = df['code'].str.split("_")

此代码用于根据下划线分割字符串。现在我想获取列中生成的拆分列表并重新组合前三个元素,以便:

PC001-S001_D_CFI4-1_NN ==> PC001-S001_D_CFI4-1

如果我只是使用以下方法应用于字符串,我可以这样做:

a = 'PC001-S002_D_CFI4-1_NN'
b = a.split("_")[0:3]
c = "_".join(b)

然而,我尝试将其应用于熊猫,但没有取得太大成功。

任何建议都会受到极大的欢迎。


您可以使用系列.str.rsplit(...) https://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.str.rsplit.html:

In [11]: df['domain'] = df['code'].str.rsplit('_',1).str[0]

In [12]: df
Out[12]:
                     code               domain
0  PC001-S002_D_CFI4-1_NN  PC001-S002_D_CFI4-1
1  PC001-S002_D_CFI4-1_NN  PC001-S002_D_CFI4-1
2  PC001-S002_D_CFI4-1_NN  PC001-S002_D_CFI4-1
3  PC001-S002_D_CFI4-1_ER  PC001-S002_D_CFI4-1
4  PC001-S002_D_CFI4-1_ER  PC001-S002_D_CFI4-1
5  PC001-S002_D_CFI4-1_ER  PC001-S002_D_CFI4-1

或者只是删除最后一部分:

In [7]: df['domain'] = df['code'].str.replace(r'\_\w+?$','')

In [8]: df
Out[8]:
                     code               domain
0  PC001-S002_D_CFI4-1_NN  PC001-S002_D_CFI4-1
1  PC001-S002_D_CFI4-1_NN  PC001-S002_D_CFI4-1
2  PC001-S002_D_CFI4-1_NN  PC001-S002_D_CFI4-1
3  PC001-S002_D_CFI4-1_ER  PC001-S002_D_CFI4-1
4  PC001-S002_D_CFI4-1_ER  PC001-S002_D_CFI4-1
5  PC001-S002_D_CFI4-1_ER  PC001-S002_D_CFI4-1
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

拆分 pandas DataFrame 元素中的字符串并重新组合列表的一部分 的相关文章

随机推荐

  • ffmpeg - 我可以将音频通道绘制为图像吗?

    我想知道是否可以使用 ffmpeg 将视频或音频文件的音频通道绘制为图像 或者是否有其他工具可以在 Win2k8 x64 上执行此操作 我将这样做作为用户上传视频或音频文件后编码过程的一部分 我使用 ColdFusion 10 来处理上传并
  • 安装 phpredis MAC OSX

    任何人都可以帮我在 MAC OSX 中安装 php redis 吗 brew install php redis 不工作 pecl install php redis 也不起作用 无效的包名称 包文件 php redis 自制错误 自制错误
  • 在 Postgres 中收集递归 JSON 键

    我有 JSON 文档以 JSON 数据类型 Postgres 9 3 存储在 Postgres 中 并且我需要递归地收集树中的键名称 例如 给定这个 JSON 树 files folder file1 property blah file2
  • 更改 EF4 中的数据库表名称(实体框架 4)

    有谁知道如何更改 EF4 实体框架 4 中实体的映射数据库表 稍后编辑 我想我已经在模型浏览器中找到了定义表名称的位置 但它们的名称是只读的 因此无法使用设计器对其进行编辑 另外 在 xml 模式中没有对表名称的引用 根据我的搜索 如果您只
  • unittest 测试用例中的重复代码

    我有一个如下所示的测试用例 def MyTestCase unittest Testcase def test input01 self input read from disk input01 output run input valid
  • 为什么字符范围类 [A-z] 匹配下划线?

    在多种语言中尝试过 结果相同 JavaScript 示例 A z test gt true A z test 0 gt false A z test gt false A z test A gt true 为什么第一个病例没有返回false
  • 使用 JavaScript 调整图像大小并保存到磁盘

    我试图将由 JavaScript 完成的调整大小的图像上传到服务器 所以我尝试使用调整大小的图像设置文件输入 后来我才知道除非用户选择文件 否则我们无法更改文件输入 https stackoverflow com questions 169
  • 如何在服务器上定位Sh​​arepoint文档库源页面?

    我正在使用 Sharepoint 文档库 并且正在尝试查找文档库页面的源 我正在 Sharepoint 服务器上工作 我就是找不到它 它应该存放在哪里 谢谢你 SharePoint 不会将页面直接存储在文件系统中 该机制有点不那么简单 要了
  • 多线程游戏 - 更新、渲染以及如何拆分它们

    所以 我正在开发一个游戏引擎 并且已经取得了很好的进展 然而 我的引擎是单线程的 将更新和渲染分成单独的线程的优点听起来是一个非常好的主意 我该怎么做 单线程游戏引擎 概念上 非常容易制作 你有一个更新 gt 渲染 gt 睡眠 gt 重复的
  • Docker:b'json:无法将数字解组到字符串类型的 Go 结构字段 LogConfig.Config 中

    我在 docker compose 中将我的应用程序配置为使用轮换日志 遵循以下站点中的操作 https medium com Quigley Ja rotating docker logs keeping your overlay fol
  • Maven资源过滤

    我想将构建信息写入属性文件 我找到了 Maven 资源过滤插件 这就是我的 pom 相关部分的样子
  • 如何应用结构来对视图控制器操作的数据进行建模

    我尝试在应用程序设计中更多地采用 Swift 的值类型 但我遇到了一些初学者困难 我知道那些基于意见的 StackOverflow 格式通常不太受欢迎 但我认为这里有可能不是特别主观的最佳实践 我理解结构的所有理论上的好处 关于避免共享可变
  • 无法绑定到“ngForOf”,因为它不是 Angular 9 中“tr”的已知属性

    ngFor在我的应用程序中不起作用 我将我的应用程序分成单独的模块并包含import CommonModule from angular common 进入我的子模块并import BrowserModule from angular pl
  • 将常量呈现到 XML 文档中?

    我有 2 个私有常量和一个公共方法 private const byte minAge 24 private const byte maxAge 29 public bool IsInAgeRange 我正在添加 XML 文档 并且希望我的
  • TFSBuild 命令行 / vNext 2015

    前提 我认为这是 TFS 2015 中的错误 缺失功能 当我使用 TFS 网站创建新的构建 非 xaml 定义时 我无法使用命令行调用它TFSBuild start命令 如果我创建标准 XAML 定义 我可以使用命令行启动它 知道命令行是否
  • Flyway并发迁移

    我们有许多项目在许多服务器上运行 并查找一个数据库 我们正在考虑为每个项目设置 Flyway 来控制我们的数据库结构 但是我们担心并发迁移问题 如果某些项目在同一时间重新部署 当然 我们总是关心sql语法中的 如果存在 的事情 当同一数据表
  • Laravel 更改输入值

    在 Laravel 中 我们可以通过以下方式获取输入值Input get inputname 我尝试通过这样做来改变值Input get inputname new value 但后来 我收到错误消息说Can t use function
  • 处理包含多行的 Excel 文件时出现错误 502

    处理包含多行的 Excel 文件时出现错误 502 使用 Django Nginx 问题不在于文件的大小小于 1Mb 此页面可以正常处理 200 行的文件 当文件有更多行时问题就会出现 然后页面处理此文件的时间太长 这是错误 2012 07
  • 将图例移动到 ggplot2 的底部[重复]

    这个问题在这里已经有答案了 我创建了以下热图 如果您注意到群组的图例位于右侧且垂直放置 如何将图例移动到底部 以便为 X 轴变量月份 M0 到 M55 提供更多空间 此外 您会注意到 X 轴元素重叠 因此不清楚 图表的输出 cohort c
  • 拆分 pandas DataFrame 元素中的字符串并重新组合列表的一部分

    我试图弄清楚如何在 pandas 元素中拆分字符串 然后重新组合拆分字符串的一部分 我有以下代码 import pandas as pd df pd DataFrame code PC001 S002 D CFI4 1 NN PC001 S