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

将不同长度DataFrame组成的字典合并为单表并补零对齐维度的实现问题

实现方法

你之前的写法没有把每个子DataFrame里的日期和数值做对应映射,直接把整个DataFrame作为字典值传入,才会出现格式不符的问题。按以下步骤实现即可:

  1. 先把字典中每个子DataFrame处理成以日期为索引、数值为值的Series,保证日期和数值的对应关系
  2. 合并所有Series,按日期自动对齐,缺失值补0后转置,即可得到目标格式的DataFrame

示例代码

import pandas as pd

# 处理每个子DataFrame
series_list = []
for df in my_dict.values():
    # 转换yr_mo为日期格式避免对齐错误,设为索引后取数值列
    s = df.assign(yr_mo=pd.to_datetime(df["yr_mo"])).set_index("yr_mo")["number"]
    series_list.append(s)

# 合并对齐日期,补零后转置得到目标格式
result_df = pd.concat(series_list, axis=1).sort_index().fillna(0).T

# 如果需要重置行索引为0、1、2...的格式,加上下面这行即可
result_df = result_df.reset_index(drop=True)

代码说明

  • pd.concat(series_list, axis=1):将所有时间序列按日期索引对齐合并,列对应每一条原始时间序列,索引对应所有出现过的日期
  • sort_index():保证日期列按时间升序排列,和你给出的目标格式一致
  • fillna(0):将较短时间序列缺失的日期值统一补零
  • .T转置后,行对应每一条原始时间序列,列对应所有日期,符合你的输出要求
  • 如果不需要保留原始时间序列的key作为索引,加reset_index(drop=True)即可得到行索引为0开始的连续数字的格式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 22:06:03