如何拆分DataFrame合并数据并保留原记录生成新DataFrame
Pandas拆分合并数据并保留原记录
问题场景
现有包含合并字段的DataFrame,name和code列的值通过/分隔:
import pandas as pd df = pd.DataFrame({ 'name': ['joe blogs/john williams'], 'code': ['100000/100001'] })
原始数据输出:
name code 0 joe blogs/john williams 100000/100001
期望生成的结果需同时包含拆分后的单独记录和原始合并记录:
name code 0 joe blogs 100000 1 john williams 100001 2 joe blogs/john williams 100000/100001
实现代码
# 拆分并展开合并字段 split_df = df.assign( name=df['name'].str.split('/'), code=df['code'].str.split('/') ).explode(['name', 'code'], ignore_index=True) # 合并拆分数据与原始数据,重置索引并去重 result_df = pd.concat([split_df, df], ignore_index=True).drop_duplicates() # 输出结果 print(result_df)
代码说明
assign():将原列的字符串按/拆分为列表格式explode():把列表中的每个元素拆分为独立行,同时保证name和code的对应关系pd.concat():将拆分后的数据集与原始数据集合并drop_duplicates():避免因原始数据重复导致的结果行重复(根据实际需求可省略)
内容的提问来源于stack exchange,提问作者Joe
相关产品推荐
相关产品推荐

