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

如何在Python中仅打印pandas groupby对象的特定组

在Python中仅打印pandas groupby对象的特定组

准备数据与分组对象

首先创建示例DataFrame并生成groupby对象:

import pandas as pd
df = pd.DataFrame({'ID'    : [1, 1, 1, 1, 2, 2, 2, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4],
                   'Entry' : [1, 2, 3, 4, 1, 2, 3, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 6]})
grouped_by_unit = df.groupby(by="ID")

问题1:仅打印ID=1的分组

pandas的groupby对象支持像字典一样通过键直接获取对应分组,使用get_group()方法即可:

# 打印ID=1的分组
print(grouped_by_unit.get_group(1))

输出结果:

ID  Entry
0   1      1
1   1      2
2   1      3
3   1      4

问题2:同时打印ID=1和ID=4的分组

有两种常用方式实现:

方式1:遍历指定ID逐个打印

适合需要分开展示每个分组的场景:

target_ids = [1, 4]
for id_val in target_ids:
    print(f"\n=== ID={id_val} 的分组 ===")
    print(grouped_by_unit.get_group(id_val))

输出结果:

=== ID=1 的分组 ===
   ID  Entry
0   1      1
1   1      2
2   1      3
3   1      4

=== ID=4 的分组 ===
    ID  Entry
12   4      1
13   4      2
14   4      3
15   4      4
16   4      5
17   4      6

方式2:筛选后打印合并结果

如果需要将多个分组合并为一个DataFrame打印,使用filter()方法:

# 筛选出ID为1和4的分组并打印
filtered_df = grouped_by_unit.filter(lambda x: x['ID'].iloc[0] in [1, 4])
print(filtered_df)

输出结果:

ID  Entry
0    1      1
1    1      2
2    1      3
3    1      4
12   4      1
13   4      2
14   4      3
15   4      4
16   4      5
17   4      6

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 11:15:36