如何对Pandas DataFrame多列拆分展开并保持列值关联?
问题:Pandas多列拆分展开时保持列对应关系
原始DataFrame:
id term code 2445 | 2716 abcd | efgh 2345 1287 hgtz 6567
需求:对id和term列执行拆分展开操作,同时保持id、term与code列的数值对应关系,预期输出如下:
id term code 2445 abcd 2345 2716 efgh 2345 1287 hgtz 6567
当前尝试的代码:
df.assign(id=df['id'].str.split(' | ')).explode('id')
解决方法
要实现多列拆分后保持对应关系,需要同时对id和term列完成拆分,再一起执行explode操作,确保拆分后的每组id与term匹配同一行的code值。
完整可运行代码:
import pandas as pd # 构造示例数据 data = { 'id': ['2445 | 2716', '1287'], 'term': ['abcd | efgh', 'hgtz'], 'code': [2345, 6567] } df = pd.DataFrame(data) # 拆分多列并同时展开 df = df.assign( id=df['id'].str.split(' | '), term=df['term'].str.split(' | ') ).explode(['id', 'term'], ignore_index=True) print(df)
关键说明:
- 拆分分隔符需与数据中的格式完全一致,这里是
' | '(空格+竖线+空格),避免拆分错误 explode方法支持传入列名列表,可同时展开多个列,保证对应关系不混乱- 添加
ignore_index=True可重置结果的索引,让输出更规整
内容的提问来源于stack exchange,提问作者rshar
相关产品推荐
相关产品推荐

