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

求助:如何将包含嵌套列表的字典转换为指定结构的Pandas DataFrame

如何将嵌套列表字典转换为指定结构的Pandas DataFrame?

我来帮你搞定这个问题!你当前的代码只处理了字典里的第一个键值对,所以才只得到了length相关的数据,完全没包含weight。我们可以通过拆分每个指标的DataFrame再合并的方式,轻松得到你想要的目标结构。

解决方案代码

import pandas as pd

data = {'length': [[1633345896441, 101.25], [1633348822964, 101.67], [1633353200096, 102.32]], 
        'weight' : [[1633345896441, 7.09], [1633348822964, 7.44], [1633353200096, 7.51]]}

# 1. 遍历字典,将每个指标的嵌套列表转为带日期列的DataFrame
df_collection = []
for metric, values in data.items():
    temp_df = pd.DataFrame(values, columns=['date', metric])
    df_collection.append(temp_df)

# 2. 按日期列合并所有指标的DataFrame
merged_df = pd.merge(df_collection[0], df_collection[1], on='date')

# 3. 重置索引,匹配目标结构
final_df = merged_df.reset_index(drop=False)

print(final_df)

代码说明

  • 步骤1:遍历字典里的每个指标(length和weight),把对应的嵌套列表转换成单独的DataFrame,每列命名为date和对应指标的名字。这样每个小DataFrame都能关联日期和对应数值。
  • 步骤2:用pd.merge按date列合并两个小DataFrame,这样相同日期的length和weight就会被放在同一行。因为你的数据里日期完全匹配,用默认的内连接就没问题。
  • 步骤3:通过reset_index添加index列,让最终结果和你想要的结构完全一致。

运行结果

indexdatelengthweight
01633345896441101.257.09
11633348822964101.677.44
21633353200096102.327.51

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 18:32:31