当前位置: 首页 > 知识库问答 >
问题:

Python Pandas:拆分列并在当前[重复]旁边添加新列

于恺
2023-03-14

我有一个类似于此的excel工作表,但有很多列:

我想将团队列拆分为团队和一个名为Team ID的新列。我目前使用以下代码执行此操作:

df[['Team', 'Team ID']] = df['Team'].str.split(r"\s\(+(?=\S*$)", expand=True)
df['Team ID'] = df['Team ID'].str[:-1]

这很好(请注意,团队名称可以包括数字、空格和paranthesis)。虽然这可能并不完美,但我完成了这项工作。

我的问题是新列“Team ID”放置在数据集的末尾。所以它将是“Team-成员-Team ID”。虽然3列不是问题,但有时有10列需要拆分7列。

所以问题是:有没有办法把一列一分为二,然后把新创建的列放在旧列的旁边?

共有1个答案

邴姚石
2023-03-14

您可以将str.extract与正则表达式一起使用。

要插入到正确的位置,可以使用插入:

out = df['Team'].str.extract('(\w+) \((\d+)\)')

df['Team'] = out[0]
df.insert(df.columns.get_loc('Team')+1, 'Team ID', out[1])

输出:

    Team  Team ID  Members
0  Team1      553    95435
1  Team2      443      872

正则表达式

(\w+)      # match word
\((\d+)\)  # match digits surrounded by parentheses
 类似资料:
  • 我有一个文本框和一个下拉菜单。根据下拉菜单中选择的值,如果需要,我将textbox更改为datepicker字段。功能工作良好,但我看到在激活datepicker时,textbox和dropdown之间有一个小按钮。当datepicker被销毁时,它就会消失。 有什么想法,我可以摆脱这个按钮,只是触发datepicker日历时,用户点击文本框?

  • 问题内容: 当用户访问未经授权的个人页面(例如个人资料)时,我的后端302重定向到控制器操作,该操作代替部分个人资料来提供登录部分。由于它302重定向到返回部分操作的动作,因此URL地址栏与用户尝试访问的页面(“ / profile”)没有变化。 我本来打算“修复”该问题,但实际上我认为它可以提供良好的用户体验,而不是将返回网址作为查询参数来处理。 想法是一旦他们登录,我只想重新加载当前路由,也可

  • 对如何实现这一点有什么想法吗?

  • 我正在处理一个庞大的医疗数据集。现在,我想添加一个代表再入院的列,也就是说,如果患者最多在6个月前进行过手术,那么“再入院”列将是该患者在过去6个月中进行的手术次数。否则将为“0”。我将分享部分数据集: 所以,通过这种方式,我想有一个新列,在这个例子中,像这样: 有人能帮我吗?

  • 问题内容: 我正在尝试将一个二进制文件(如视频/音频/图像)分成每个100kb的块,然后将这些块重新连接回原来的文件。我的代码似乎可以正常工作,从某种意义上说,它可以分割文件并合并块,我返回的文件大小与原始文件相同。但是,问题在于内容会被截断- 也就是说,如果它是视频文件,它将在2秒钟后停止,如果它是图像文件,则只有上部看起来正确。 这是我正在使用的代码(如果您愿意,我可以发布整个代码): 划分:

  • 在我的项目中,我按书签拆分了一个pdf文件。应该创建一个新的pdf文件,其中包含拆分的页面和一些新的书签。 这将导致以下异常: 线程“main”java.io.ioException中的异常:COSStream已关闭,无法读取。也许它所附的PDDocument已经关闭了? 如果删除行,则新的pdf包含拆分的页面(没有例外),但显然不包含书签。我想我尝试添加书签的方式有问题。 我的代码: Stack