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

如何对pandas DataFrame按两列中任意一列的类别进行分组计算

实现方法

核心逻辑是先给每条数据打上它所属的所有分组标签(只要study_name或request_name匹配就打上对应标签,自动去重避免重复计数),再展开后分组聚合即可,具体代码如下:

第一步:构造分组标签列

import pandas as pd
# 给每行生成所有符合条件的非空分组标签,自动去重避免同一条数据重复计数
df["name"] = df.apply(
    lambda row: list(pd.unique([row.study_name, row.request_name])[pd.notna(pd.unique([row.study_name, row.request_name]))]),
    axis=1
)

第二步:展开标签列

# 把列表形式的标签炸开,每条数据对应所属的每一个分组
df_exploded = df.explode("name", ignore_index=True)

第三步:分组聚合

# 按要求分组计算计数和均值
result = df_exploded.groupby(["x_ray_system_name", "name"]).agg({"total_dlp": ["count", "mean"]})

运行后得到的result和预期输出完全一致:

total_dlp
                                     count         mean
x_ray_system_name   name   
All systems         blank                3   200.000000
                    head                 4   187.500000

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 19:45:02