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

如何将指定嵌套列表/数组转换为目标结构的Pandas DataFrame

实现嵌套列表到目标DataFrame的转换

这里有个清晰的实现方案,完全匹配你的需求:

我们需要把每个聚类组里的整数和对应浮点数一一配对,同时给每个组分配唯一的ClstId,具体步骤如下:

步骤1:导入依赖库

因为你的数据里包含numpy数组,所以需要导入numpy和pandas:

import pandas as pd
import numpy as np

步骤2:定义原始数据

把你提供的嵌套列表赋值给变量:

raw_data = [((1538, 6323), (0.9995334, 0.9995334)), 
            ((7694, 7862, 8399, 9158), np.array([0.99999015, 0.99997352, 0.99997993, 0.99996219]))]

步骤3:构建行数据列表

遍历每个聚类组,生成符合要求的行记录:

rows = []
# 遍历每个聚类,从1开始分配ClstId
for clst_id, (int_vals, float_vals) in enumerate(raw_data, start=1):
    # 如果是numpy数组,先转成普通列表
    if isinstance(float_vals, np.ndarray):
        float_vals = float_vals.tolist()
    # 把整数和浮点数一一配对,添加到行列表
    for col_int, col_float in zip(int_vals, float_vals):
        rows.append({
            'ClstId': clst_id,
            'ColInt': col_int,
            'ColFloat': col_float
        })

步骤4:转换为DataFrame

最后把行列表转换成Pandas DataFrame:

df = pd.DataFrame(rows)
print(df)

输出结果

运行后你会得到完全符合要求的DataFrame:

ClstId  ColInt  ColFloat
0       1    1538  0.999533
1       1    6323  0.999533
2       2    7694  0.999990
3       2    7862  0.999974
4       2    8399  0.999980
5       2    9158  0.999962

关键点说明

  • 使用enumerate(raw_data, start=1)可以方便地从1开始生成聚类ID,不用手动维护计数器
  • 加入了对numpy数组的判断和转换,确保兼容原始数据中的数组类型
  • zip(int_vals, float_vals)完美实现整数和对应浮点数的配对,保证每行数据的对应关系正确

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:48:49