You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将DataFrame中Adj.列的列表拆分为单独行?

这问题我之前也碰到过!根源其实是你的DataFrame有重复的列名(两个Connector、两个Pin),导致合并操作时触发了多索引冲突。给你两个解决方案,优先用更简洁的那个:

解决方法:拆分列表列并处理重复列名问题

首先必须先处理重复列名的问题,这是触发报错"Merging with both multi-indexes is not implemented"的核心原因:

步骤1:给重复列设置唯一名称

先把重复的列名改成唯一标识,避免后续索引对齐出问题:

# 重命名列,确保每个列名唯一
df.columns = ['Connector', 'Pin', 'Connector_adj', 'Pin_adj', 'Adj.', 'Color']

方法1:使用explode()(推荐,pandas 0.25+支持)

这是pandas官方专门为拆分列表/数组列推出的方法,简洁高效:

# 直接拆分Adj.列的列表,每个元素生成单独一行
result_df = df.explode('Adj.').reset_index(drop=True)

执行后就能得到你想要的输出:每个列表元素对应一行,其他列的数值保持不变。

方法2:兼容低版本pandas(0.25以下)

如果你的pandas版本较低,用apply+stack的方式实现,注意保持索引对齐:

# 拆分Adj.列的列表,生成带原索引的Series
adj_expanded = df['Adj.'].apply(pd.Series).stack().reset_index(level=1, drop=True)
adj_expanded.name = 'Adj.'

# 合并回原DataFrame(先删除原Adj.列)
result_df = df.drop('Adj.', axis=1).join(adj_expanded)

验证结果

处理后的result_df会和你给出的期望输出一致,比如第一组数据会变成:

ConnectorPinConnector_adjPin_adjAdj.Color
F1231F12312R
F1231F12316R
F1231F12317R

内容的提问来源于stack exchange,提问作者MaxB

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 08:47:15