如何在Pandas中实现含逗号分隔值的行数据一对一映射?
实现步骤(基于Pandas)
假设你的原始数据集结构如下(示例):
id option1 option2 0 1 a,b,c x,y,z 1 2 d,e m,n
已知option1和option2的逗号分隔值数量完全匹配,直接用Pandas的str.split和explode方法即可快速实现一对一映射:
- 将
option1和option2列的字符串按逗号拆分为列表:
import pandas as pd # 读取原始数据(此处用示例数据替代) df = pd.DataFrame({ 'id': [1, 2], 'option1': ['a,b,c', 'd,e'], 'option2': ['x,y,z', 'm,n'] }) # 拆分字符串为列表 df['option1'] = df['option1'].str.split(',') df['option2'] = df['option2'].str.split(',')
- 同时对两列进行展开,确保对应位置的元素一一配对:
# 展开列表为多行,保留所有列的关联关系 df = df.explode(['option1', 'option2'], ignore_index=True)
执行后得到的目标格式如下:
id option1 option2 0 1 a x 1 1 b y 2 1 c z 3 2 d m 4 2 e n
如果原始数据包含其他列,该方法会自动保留所有列与配对值的对应关系,仅针对指定列完成映射转换。
内容的提问来源于stack exchange,提问作者bad_coder9042093
相关产品推荐
相关产品推荐

