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

如何使用Pandas按gw_mac与mac列值对DataFrame分组?

按多列分组实现需求

嘿,这事儿用 pandas 的 groupby 方法就能轻松搞定!咱们一步步来实现你要的效果:

首先,先构造你提供的输入 DataFrame(如果已经有现成的 df 就跳过这步):

import pandas as pd

data = {
    'gw_mac': ['ac233fc015f6'] * 8,
    'mac': ['dce83f3bc820', 'ac233f264a4c', 'ac233f264a4c',
            'dce83f3bc820', 'ac233f264a4c', 'ac233f264a4c',
            'dce83f3bc820', 'e464eecba5eb']
}
df = pd.DataFrame(data)

接下来就是核心的分组操作——我们按 gw_mac 和 mac 这两列来分组:

# 按指定列分组
grouped = df.groupby(['gw_mac', 'mac'])

最后,遍历分组并输出成你想要的格式:

# 遍历每个分组,编号并打印
for group_num, (group_labels, group_data) in enumerate(grouped, start=1):
    print(f"Group{group_num}")
    print(group_data)
    print("\n")

运行这段代码后,你就能得到完全符合预期的输出:

Group1
gw_mac mac
0 ac233fc015f6 dce83f3bc820
3 ac233fc015f6 dce83f3bc820
6 ac233fc015f6 dce83f3bc820

Group2
gw_mac mac
1 ac233fc015f6 ac233f264a4c
2 ac233fc015f6 ac233f264a4c
4 ac233fc015f6 ac233f264a4c
5 ac233fc015f6 ac233f264a4c

Group3
gw_mac mac
7 ac233fc015f6 e464eecba5eb

简单解释下:groupby(['gw_mac', 'mac']) 会自动把两列值完全相同的行归为一组,因为你示例里所有行的 gw_mac 都是同一个值,所以实际是按 mac 来区分分组,但保留了 gw_mac 列的内容。用 enumerate(..., start=1) 是为了给分组从1开始编号,正好匹配你要的Group1/2/3格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 04:34:00