如何在Pandas分组后仅展示指定Test分组的ROI平均值
获取指定分组的ROI平均值
给定如下DataFrame:
import pandas as pd df = pd.DataFrame({'Test':[0,0,1,1,2,3], 'ROI':[12,13,14,12,13,15]})
对应数据表格:
| Test | ROI |
|---|---|
| 0 | 12 |
| 0 | 13 |
| 1 | 14 |
| 1 | 12 |
| 2 | 13 |
| 3 | 15 |
原分组计算代码:
Group1 = df[["Test","ROI"]].groupby("Test").mean()
得到全部分组的平均值结果:
| Test | ROI |
|---|---|
| 0 | 12.5 |
| 1 | 13.0 |
| 2 | 13.0 |
| 3 | 15.0 |
若仅需保留Test为0和3的分组结果,可通过以下两种方式实现:
方式一:先筛选目标数据再分组计算
先过滤出Test值为0或3的行,再进行分组求均值,这种方式仅处理目标数据,效率更优:
# 筛选Test为0或3的记录 target_df = df[df['Test'].isin([0, 3])] # 分组计算ROI平均值 result = target_df.groupby('Test')['ROI'].mean()
方式二:先全量分组再筛选结果
如果已得到全部分组结果Group1,可直接通过索引提取目标分组:
# 从已有的分组结果中筛选Test为0和3的行 result = Group1.loc[[0, 3]]
两种方式最终得到的结果均为:
| Test | ROI |
|---|---|
| 0 | 12.5 |
| 3 | 15.0 |
内容的提问来源于stack exchange,提问作者Inês Outor
相关产品推荐
相关产品推荐

