【发布时间】:2022-02-04 17:48:45
【问题描述】:
我有一个与此类似的 Excel 表格,但列更多:
| Team | Members |
|---|---|
| Team1 (553) | 95435 |
| Team2 (443) | 872 |
我想将团队列拆分为团队和一个名为团队 ID 的新列。我目前使用以下代码执行此操作:
df[['Team', 'Team ID']] = df['Team'].str.split(r"\s\(+(?=\S*$)", expand=True)
df['Team ID'] = df['Team ID'].str[:-1]
这很好用(请注意,团队名称可以包含数字、空格和括号)。所以虽然这可能并不完美,但我完成了工作。
我的问题是新列“团队 ID”位于数据集的末尾。所以它将是“团队 - 成员 - 团队 ID”。虽然 3 列不是问题,但有时有 10 列需要拆分 7 列。
那么问题来了:有没有办法将一列分成 2 列,并将新创建的列放在旧列旁边?
【问题讨论】:
-
@jezrael 不确定这是不是骗子,可以直接在正确的位置插入
-
@mozway - 我认为使用列名列表以正确方式进行最后排序。
-
或者使用
df.insert(df.columns.get_loc('Team')+1, 'Team ID', df.pop('Team ID'))应该可以工作