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

如何将DataFrame的索引与第二列元素追加至含第一列元素的嵌套列表

解决DataFrame索引与列值向嵌套列表追加的问题

需求说明

现有一个包含两列的DataFrame,以及一个已包含DataFrame第一列(Column A)元素的嵌套列表,需要将DataFrame的索引和第二列(Column B)的对应值追加到嵌套列表的每个元素中,最终形成[索引值, ColumnA元素, ColumnB元素]的子结构,并保留原嵌套列表的层级。

示例数据

DataFrame结构:

Column AColumn B索引
100.2A0
101.5B1
103.6C3
104.6D4
105.7E5

现有嵌套列表:

[[100.2,101.5],[103.6,104.6],[105.7]]

期望输出:

[[[0,100.2,'A'],[1,101.5,'B']],[[3,103.6,'C'],[4,104.6,'D']],[[5,105.7,'E']]] 

实现代码

import pandas as pd

# 构造目标DataFrame(索引可根据实际情况调整)
df = pd.DataFrame(
    data={
        'Column A': [100.2, 101.5, 103.6, 104.6, 105.7],
        'Column B': ['A', 'B', 'C', 'D', 'E']
    },
    index=[0, 1, 3, 4, 5]
)

# 现有嵌套列表
existing_list = [[100.2, 101.5], [103.6, 104.6], [105.7]]

# 构建Column A元素到(索引, Column B值)的映射字典
value_mapping = {row['Column A']: (idx, row['Column B']) for idx, row in df.iterrows()}

# 生成结果列表
result = []
for sub_list in existing_list:
    new_sub = []
    for num in sub_list:
        idx, b_val = value_mapping[num]
        new_sub.append([idx, num, b_val])
    result.append(new_sub)

# 输出结果
print(result)

代码说明

  1. 映射字典构建:通过字典推导式快速建立Column A元素与对应索引、Column B值的关联,确保后续查找高效。
  2. 层级遍历重组:遍历原有嵌套列表的每一层,对每个数值从映射字典中取出对应数据,重组为目标子结构,最终拼接成符合要求的嵌套列表。
  3. 灵活性调整:如果你的DataFrame使用默认连续索引,只需移除index参数即可,代码会自动匹配对应索引值;若Column A存在重复值,可根据实际需求修改映射逻辑(如改用列表存储多组对应关系)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 13:10:49