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

如何用Pandas对DataFrame中字典列表的size值按时间戳求和?

使用Pandas对DataFrame中嵌套字典的size值按时间戳求和

你这个需求很常见,用Pandas可以轻松实现,给你两种实用的方案,按需选择就行:

方案一:简洁版(适合中小数据集)

直接用apply配合生成器表达式,一行代码就能搞定:

import pandas as pd

# 假设你的原始DataFrame名为df
df['asks'] = df['asks'].apply(lambda row: sum(int(item['size']) for item in row))

原理很简单:对asks列的每一行(也就是每个包含字典的列表),遍历里面的每个字典,把size字段转成整数后累加求和,直接替换原列就得到目标结果了。

方案二:高效版(适合大数据集)

如果你的数据量比较大,apply的性能可能不够理想,推荐用explode+json_normalize的组合,先拆分再聚合:

# 第一步:把每个列表拆成单独的行
exploded_df = df.explode('asks')
# 第二步:把字典格式的内容拆成独立列,并关联原时间戳
normalized_df = pd.json_normalize(exploded_df['asks']).join(exploded_df['timestamp'])
# 第三步:按时间戳分组,对size求和,最后整理格式
result_df = normalized_df.groupby('timestamp')['size'].sum().astype(int).reset_index(name='asks')

这种方法通过拆分数据结构,利用Pandas的矢量化操作提升性能,最后分组求和后得到的result_df就是你想要的格式。

两种方法都能得到你需要的结果,小数据用方案一够简洁,大数据用方案二更高效~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 17:01:49