如何将含分号分隔值的DataFrame行拆分至左右相邻两列
实现拆分到相邻列的解决方案
核心使用pandas字符串方法str.split的expand=True参数即可实现需求,该参数会将拆分后的列表直接展开为多列,和你之前用到的explode(用于拆分生成多行)适用场景不同。
具体实现代码
假设你需要拆分的列名为var1,代码如下:
# n=1代表最多拆分1次,避免内容存在多个分号时拆分出错 df[['var1', 'var1_right']] = df['var1'].str.split(';', n=1, expand=True)
代码说明
- 分隔符指定为
;,和你数据的分隔规则匹配 n=1参数控制最多做1次拆分,就算单元格内容中存在多余的分号,后半部分内容也会全部保留在右侧新列中expand=True将拆分得到的列表展开为两列的DataFrame,直接赋值给原列和新的右邻列即可实现你要的并排分布效果
效果示例
原var1列内容:
| 原var1 |
|---|
| 苹果;红色 |
| 香蕉;黄色 |
| 橙子;橙色 |
运行代码后输出结果:
| var1 | var1_right |
|---|---|
| 苹果 | 红色 |
| 香蕉 | 黄色 |
| 橙子 | 橙色 |
内容的提问来源于stack exchange,提问作者ahmed salem
相关产品推荐
相关产品推荐

