如何在Pandas中将单列短划线分隔的字符串动态拆分为多个独立列
实现方案(Pandas)
核心思路:利用Pandas字符串拆分方法的自动扩展能力,动态生成匹配最大步骤数的列,无需提前统计步骤总数。
- 完整可运行代码:
import pandas as pd # 构造示例数据,实际使用时替换为你的df即可 df = pd.DataFrame({ 'id': ['A', 'A', 'A'], 'sid': [1, 1, 1], 'steps': ['step1', 'step1-step2', 'step1-step2-step3'] }) # 按短横线拆分steps列,expand=True会自动扩展为独立列,列数等于最长路径的步骤数 step_split = df['steps'].str.split('-', expand=True) # 动态为拆分后的列重命名,格式为page_step+序号(从1开始) step_split.columns = [f'page_step{i+1}' for i in step_split.columns] # 把拆分后的列拼回原表 result = pd.concat([df, step_split], axis=1) print(result)
运行后输出的result和你给出的预期结构完全一致,步骤不足的位置会自动填充NaN,如果后续steps列出现更长的路径,代码会自动生成对应序号的page_step列,无需调整逻辑。
内容的提问来源于stack exchange,提问作者S44
相关产品推荐
相关产品推荐

