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

如何将含嵌套元组的列表转换为扁平化Pandas DataFrame?

解决方案:扁平化嵌套列表为Pandas DataFrame

没问题,我来帮你搞定这个需求!你提到的列表推导式确实是处理这类嵌套结构扁平化的高效方法,我们可以一步把嵌套结构拆成适合生成DataFrame的扁平格式,直接得到你想要的结果。

具体实现代码

先看核心代码,用列表推导式展开嵌套结构,再转换为DataFrame:

import pandas as pd

nested = [['53062423-690f-4923-8f65-db710c038566', [('12253996-b2f7-46c7-b49f-09ca87cac84f', 'AFC_PoCv1.0'), ('b17bd025-611f-4728-9396-e59388ee59f6', 'Customer Profitability Sample'), ('b4a5d199-2c6f-4f8d-9fcb-5e4971254f73', 'Jammers vs Floaty Pants')]], ['988f64ea-14b2-4ad7-a899-ae40974c9139', [('9137e0f9-4063-479a-baff-8566c91302ff', 'DailySalesDashboard13Azure')]]]

# 用列表推导式展开嵌套结构,生成扁平的三元组列表
flattened_data = [
    (outer_id, inner_id, project_name)
    for outer_id, inner_tuples in nested
    for inner_id, project_name in inner_tuples
]

# 转换为DataFrame并指定列名
df = pd.DataFrame(flattened_data, columns=['outer_id', 'inner_id', 'project_name'])

代码逻辑解释

这段列表推导式的思路非常直观:

  1. 先遍历外层列表的每个元素,提取出外层关联id和对应的元组列表
  2. 再遍历每个元组列表里的元组,把外层id和元组内的两个值(inner_id、项目名称)组合成一个新的三元组
  3. 最后用这个扁平的三元组列表直接创建DataFrame,指定好列名就完成了

最终输出结果

运行代码后,你会得到如下结构的DataFrame:

outer_idinner_idproject_name
53062423-690f-4923-8f65-db710c03856612253996-b2f7-46c7-b49f-09ca87cac84fAFC_PoCv1.0
53062423-690f-4923-8f65-db710c038566b17bd025-611f-4728-9396-e59388ee59f6Customer Profitability Sample
53062423-690f-4923-8f65-db710c038566b4a5d199-2c6f-4f8d-9fcb-5e4971254f73Jammers vs Floaty Pants
988f64ea-14b2-4ad7-a899-ae40974c91399137e0f9-4063-479a-baff-8566c91302ffDailySalesDashboard13Azure

备选方法(用Pandas内置的explode)

如果你更习惯用Pandas的内置方法,也可以通过explode先拆分列表,再拆分元组:

# 创建临时DataFrame
temp_df = pd.DataFrame(nested, columns=['outer_id', 'inner_data'])
# 拆分inner_data列的列表,每个元组单独一行
temp_df = temp_df.explode('inner_data')
# 把元组拆分为两列
temp_df[['inner_id', 'project_name']] = pd.DataFrame(temp_df['inner_data'].tolist(), index=temp_df.index)
# 删除临时列,得到最终结果
df = temp_df.drop('inner_data', axis=1)

两种方法都能实现需求,列表推导式更简洁直观,适合这种小规模的嵌套结构~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 23:17:43