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

Python Pandas新手求助:将指定DataFrame转换为聚合表

解决Pandas新手的DataFrame聚合需求

嘿,刚接触Pandas的话,这个聚合需求其实非常容易实现!我们可以用Pandas内置的分组或透视表功能,快速得到你想要的聚合统计结果。

首先先还原你的样例DataFrame(补充了截断的部分):

import pandas as pd

# 模拟你的原始数据
data = {
    'AutomationStatus': ['Done']*10 + ['Will Not Automate'] + ['Review for Automation']*11,
    'TestPriority': [4]*10 + [3] + [3]*11
}
df = pd.DataFrame(data)

方法1:用groupby生成宽格式聚合表

这是最常用的分组统计方式,配合unstack可以把优先级转成列,形成类似交叉表的效果:

# 按状态和优先级分组,统计每组数量,再转成宽表
agg_wide = df.groupby(['AutomationStatus', 'TestPriority']).size().unstack(fill_value=0)
print(agg_wide)

输出结果会是:

TestPriority               3   4
AutomationStatus                
Done                       0  10
Review for Automation     11   0
Will Not Automate          1   0

fill_value=0是为了填充那些没有对应组合的单元格,避免出现NaN

方法2:用pivot_table直接生成透视表

如果你更习惯透视表的逻辑,pivot_table会更直观,一步到位生成聚合表:

# 透视表参数:行是状态,列是优先级,聚合方式是计数,空值补0
agg_pivot = pd.pivot_table(
    df,
    index='AutomationStatus',
    columns='TestPriority',
    aggfunc='size',
    fill_value=0
)
print(agg_pivot)

这个方法的输出和方法1完全一致,适合喜欢可视化表格逻辑的同学。

方法3:生成长格式聚合表

如果你不需要宽表,想要每行展示一个「状态+优先级」的组合及其数量,可以用这个方式:

agg_long = df.groupby(['AutomationStatus', 'TestPriority']).size().reset_index(name='Count')
print(agg_long)

输出结果:

AutomationStatus  TestPriority  Count
0                  Done             4     10
1  Review for Automation             3     11
2      Will Not Automate             3      1

这样就能轻松得到你需要的聚合结果啦,要是对某个步骤有疑问,随时问哦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 11:08:17