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

如何仅展开Pandas DataFrame列表中的嵌套子列表?

解决方案

可以通过自定义函数识别并拆分嵌套子列表,再结合explode方法实现需求:

import pandas as pd

df = pd.DataFrame({"a" : [1,2], "b" : [['a','b',['c','d']],['a',['b','c']]]})

def expand_nested_list(lst):
    # 分离列表中的非嵌套元素和嵌套子列表
    non_nested_elements = []
    nested_sub_list = None
    for elem in lst:
        if isinstance(elem, list):
            nested_sub_list = elem
        else:
            non_nested_elements.append(elem)
    # 将非嵌套元素与嵌套子列表的每个元素组合,生成新列表集合
    return [non_nested_elements + [sub_elem] for sub_elem in nested_sub_list]

# 对b列应用自定义函数,生成待展开的列表集合
df['b'] = df['b'].apply(expand_nested_list)
# 展开列表生成重复行
df2 = df.explode('b').reset_index(drop=True)

print(df2)

代码说明

  1. 自定义拆分函数:expand_nested_list遍历输入列表,区分普通元素和嵌套子列表,将普通元素与嵌套子列表中的每个元素分别组合,生成多个新列表。
  2. 应用函数:通过apply将拆分逻辑作用到b列的每个元素上,此时b列的每个值变为包含多个结果列表的集合。
  3. 展开生成多行:使用explode方法将b列的列表集合展开为单独行,a列的对应值会自动重复,最终得到目标DataFrame。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 08:15:43