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

如何根据字典键值对创建键重复对应值次数的DataFrame

Pandas按字典值重复键生成DataFrame实现方案

核心实现(高性能向量化方案)

直接使用Pandas内置的Index.repeat方法实现,无Python层循环,千万级数据量也能快速处理,代码如下:

import pandas as pd

# 已有的date_dict字典
date_dict = {'20220107': 75910,
 '20220311': 145012,
 '20220318': 214286,
 '20220325': 283253,
 '20220401': 351874,
 '20220408': 419064,
 '20220415': 486172,
 '20220422': 553377,
 '20220429': 620635,
 '20220506': 684662,
 '20220513': 748368,
 '20220114': 823454,
 '20220520': 886719,
 '20220527': 949469,
 '20220121': 1023598,
 '20220128': 1096144,
 '20220204': 1167590,
 '20220211': 1238648,
 '20220218': 1310080,
 '20220225': 1380681,
 '20220304': 1450031}

# 生成目标DataFrame
df = pd.DataFrame({
    'date': pd.Index(date_dict.keys()).repeat(date_dict.values())
}).reset_index(drop=True)

逻辑说明

  • pd.Index(date_dict.keys())将字典的所有日期键转为Pandas索引对象
  • 调用repeat方法时传入字典的所有值作为每个元素的重复次数,直接生成按要求重复的日期序列
  • 末尾的reset_index(drop=True)是可选操作,用于生成从0开始连续的行索引,不需要可以删掉

结果校验

可以用以下代码校验每个日期对应的行数是否和字典中定义的一致:

# 统计每个日期的出现次数
print(df['date'].value_counts().sort_index())

运行后输出的每个日期对应的计数和date_dict中的值完全匹配,即说明生成正确。

注意:不要用循环逐行append或者多层列表推导的方式实现,示例字典总数据量超过1500万行,循环写法的运行速度会比向量化方案慢几十倍,还可能占满内存。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 19:24:22