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

如何计算pandas.core.series.Series中各JSON元素的count、a1和a2的平均值

解决方法:解析JSON并计算平均值

嘿,这个需求很清晰,咱们一步步来搞定它:

步骤1:将Series中的JSON数据解析为结构化DataFrame

首先,我们需要把每个JSON格式的元素转换成Pandas能直接处理的DataFrame,分两种情况处理:

如果你的Series元素是JSON字符串:

先用json.loads把每个字符串转成Python字典,再用pd.json_normalize把嵌套字典展开成扁平列:

import pandas as pd
import json

# 构造示例Series(和你的数据结构一致)
data = [
    '{"count": 157065, "grp": {"a1": 12, "a2": 32}}',
    '{"count": 2342, "grp": {"a1": 4, "a2": 34}}',
    '{"count": 543, "grp": {"a1": 1, "a2": 11}}',
    '{"count": 156, "grp": {"a1": 56, "a2": 75}}'
]
s = pd.Series(data)

# 解析JSON字符串为字典,再展开成DataFrame
parsed_dicts = s.apply(json.loads)
df = pd.json_normalize(parsed_dicts)

执行后df的结构会变成扁平的表格,列名分别是count、grp.a1、grp.a2,非常方便后续计算。

如果你的Series元素已经是Python字典:

那更省事,直接跳过解析字符串的步骤,用pd.json_normalize展开即可:

df = pd.json_normalize(s)

步骤2:计算各字段的平均值

现在数据已经结构化,计算平均值就很直观了,直接调用mean()方法:

# 单独计算每个字段的平均值
count_avg = df['count'].mean()
a1_avg = df['grp.a1'].mean()
a2_avg = df['grp.a2'].mean()

print(f"count字段平均值:{count_avg}")
print(f"grp.a1字段平均值:{a1_avg}")
print(f"grp.a2字段平均值:{a2_avg}")

也可以一次性获取所有字段的平均值:

all_avgs = df.mean()
print(all_avgs)

用你的示例数据运行的话,输出结果会是:

count字段平均值:40026.5
grp.a1字段平均值:18.25
grp.a2字段平均值:38.0

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 11:03:10