如何按指定分隔符拆分DataFrame列值并生成新记录
解决方案
可以通过Pandas的字符串拆分和行展开功能快速实现需求,具体代码如下:
import pandas as pd # 构造原始DataFrame(如果已有df可跳过此步骤) data = { 'Column_1': [ '0000099598|000000|-1|0.00|Need to map to EDW|Need to map to EDW|break|006||0000099598|000000|0000099598-1', '0000099598|000000|-1|0.00|Need to map to EDW|Need to map to EDW|break|006||0000099598|000000|0000099598-1', '0000099598|000000|-1|1580.00|Need to map to EDW|Need to map to EDW|break|006||0000099598|000000|0000099598-1', '0000099598|000000|-1|150.00|Need to map to EDW|Need to map to EDW|break|006||0000099598|000000|0000099598-1', '0000099598|000000|-1|1113.75|Need to map to EDW|Need to map to EDW|break|006||0000099598|000000|0000099598-1' ] } df = pd.DataFrame(data) # 核心处理步骤 df['Column_1'] = df['Column_1'].str.split('|break|') # 按指定分隔符拆分字符串为列表 df = df.explode('Column_1').reset_index(drop=True) # 展开列表为独立行并重置索引
步骤说明
- 字符串拆分:使用
str.split('|break|')将每个单元格的内容按|break|分割成包含两个元素的列表,第一个元素是分隔符前的内容,第二个是分隔符后的内容。 - 行展开:
explode方法会将列表中的每个元素单独生成一行,严格保持原列表内元素的顺序(先显示前半段,再显示后半段),最终将5行数据扩展为10行。 - 重置索引:
reset_index(drop=True)用于清理展开后的索引,让索引从0开始连续排列。
执行后得到的DataFrame与你提供的目标效果完全一致。
内容的提问来源于stack exchange,提问作者sujithra baskaran
相关产品推荐
相关产品推荐

