为了账号安全,请及时绑定邮箱和手机立即绑定

Pandas 根据特定的列值对数据框中的行进行分组

Pandas 根据特定的列值对数据框中的行进行分组

有只小跳蛙 2021-12-09 18:11:37
我有如下所示的数据框,Input DataFrame     gw_mac                 mac 0   ac233fc015f6           dce83f3bc820 1   ac233fc015f6           ac233f264a4c 2   ac233fc015f6           ac233f264a4c 3   ac233fc015f6           dce83f3bc820 4   ac233fc015f6           ac233f264a4c 5   ac233fc015f6           ac233f264a4c 6   ac233fc015f6           dce83f3bc820 7   ac233fc015f6           e464eecba5eb现在我需要根据列值“gw_mac”和“mac”对数据框进行分组,我应该得到以下三个不同的组Expected OutputGroup1     gw_mac                 mac 0   ac233fc015f6           dce83f3bc820 3   ac233fc015f6           dce83f3bc820 6   ac233fc015f6           dce83f3bc820Group2      gw_mac                 mac  1   ac233fc015f6           ac233f264a4c  2   ac233fc015f6           ac233f264a4c  4   ac233fc015f6           ac233f264a4c  5   ac233fc015f6           ac233f264a4cGroup3      gw_mac                 mac  7   ac233fc015f6           e464eecba5eb
查看完整描述

2 回答

?
UYOU

TA贡献1878条经验 获得超4个赞

如果需要按列循环按groupby对象进行不同的组:


for i, g in df.groupby(['gw_mac','mac']):

    print (g)

         gw_mac           mac

1  ac233fc015f6  ac233f264a4c

2  ac233fc015f6  ac233f264a4c

4  ac233fc015f6  ac233f264a4c

5  ac233fc015f6  ac233f264a4c

         gw_mac           mac

0  ac233fc015f6  dce83f3bc820

3  ac233fc015f6  dce83f3bc820

6  ac233fc015f6  dce83f3bc820

         gw_mac           mac

7  ac233fc015f6  e464eecba5eb


查看完整回答
反对 回复 2021-12-09
?
猛跑小猪

TA贡献1858条经验 获得超8个赞

您可以尝试使用此方法创建具有唯一组的数据框字典,


df['Group'] = df.groupby(['gw_mac', 'mac']).cumcount()


dfs = dict(tuple(df.groupby('Group')))

您可以使用访问组,


dfs[0]


    gw_mac          mac             Group

0   ac233fc015f6    dce83f3bc820    0

1   ac233fc015f6    ac233f264a4c    0

7   ac233fc015f6    e464eecba5eb    0


查看完整回答
反对 回复 2021-12-09
  • 2 回答
  • 0 关注
  • 245 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信