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

如何将Pandas DataFrame列表列元素拆分为单独值用于表合并

Pandas列表列拆分为多行解决方案
  • 推荐方案(Pandas 0.25+版本支持):直接使用内置explode方法,该方法专门用于将列中的列表/序列元素拆分为独立行,其他列的值自动复制对齐。
    代码示例:
import pandas as pd

# 构造示例df2
df2 = pd.DataFrame({
    'url': [['x','y'], ['x','y']],
    'title': ['a', 'b']
})

# 拆分url列的列表为多行
df2_exploded = df2.explode('url', ignore_index=True)
print(df2_exploded)

运行输出即为你需要的结构:

url title
0   x     a
1   y     a
2   x     b
3   y     b

如果运行时提示ignore_index参数不存在,改为如下写法即可:

df2_exploded = df2.explode('url').reset_index(drop=True)
  • 低版本Pandas兼容方案:如果你的Pandas版本低于0.25,没有explode方法,可以用apply+stack的组合实现相同效果:
df2_exploded = df2.set_index('title')['url']\
                  .apply(pd.Series)\
                  .stack()\
                  .reset_index(level=1, drop=True)\
                  .reset_index(name='url')
# 调整列顺序和原结构对齐
df2_exploded = df2_exploded[['url', 'title']]
  • 后续和df1关联操作:拆分完成后直接用merge方法关联即可补充字段:
# 构造示例df1
df1 = pd.DataFrame({
    'url': ['x','y'],
    'name': ['a','b']
})

# 关联两个表,按url匹配
merged_df = pd.merge(df1, df2_exploded, on='url', how='left')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 02:36:04