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

如何将按timestamp分组的Pandas DataFrame转为含字典列表的字典

问题:按Timestamp分组生成指定结构的字典

给定如下Pandas DataFrame:

timestamp           min           max  count
0 2022-10-23 22:00:00+00:00  1.000000e+09  9.000000e+99      0
1 2022-10-23 22:00:00+00:00  1.000000e+08  1.000000e+09      2
2 2022-10-23 22:00:00+00:00  1.000000e+07  1.000000e+08     39
3 2022-10-23 22:00:00+00:00  1.000000e+06  1.000000e+07    162
4 2022-10-23 22:00:00+00:00  1.000000e+05  1.000000e+06    491
5 2022-10-23 22:00:00+00:00  1.000000e+04  1.000000e+05    960
6 2022-10-23 22:00:00+00:00  1.000000e+03  1.000000e+04    287
7 2022-10-23 22:00:00+00:00  1.000000e+02  1.000000e+03    244
8 2022-10-23 22:00:00+00:00  1.000000e+01  1.000000e+02    416
9 2022-10-23 22:00:00+00:00  0.000000e+00  1.000000e+01      1

需要按timestamp字段分组,生成如下结构的字典:

items = {
    '2022-10-23 22:00:00+00:00': 
        [ 
            {'min': 1.000000e+09, 'max': 9.000000e+99, 'count': 0},
            {'min': 1.000000e+08, 'max': 1.000000e+09, 'count': 2},
            ...
        ] 
}

用户尝试的代码:

df.groupby('timestamp')[['max', 'min','count']].apply(lambda g: g.values.tolist()).to_dict()

解决方案

当前代码生成的是嵌套列表,只需修改apply中的lambda函数,用to_dict('records')将每组数据转为字典列表即可:

items = df.groupby('timestamp')[['min', 'max', 'count']].apply(lambda g: g.to_dict('records')).to_dict()

代码说明

  • groupby('timestamp'):按时间戳字段分组
  • [['min', 'max', 'count']]:指定需要保留的字段,顺序与目标字典的键对应
  • g.to_dict('records'):将每组的DataFrame转换为字典列表,每个字典对应原DataFrame的一行,键为列名、值为对应行的数值
  • .to_dict():将分组结果转为最终字典结构,键为时间戳字符串,值为对应的字典列表

执行后即可得到需求的结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 09:50:26