pandas 根据特定列值对数据框中的行进行分组 [英] Pandas group the rows in a dataframe based on specific column value

查看:58
本文介绍了 pandas 根据特定列值对数据框中的行进行分组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的数据框如下所示,

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 Output
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

推荐答案

如果需要不同的GROUP BY列,则按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

这篇关于 pandas 根据特定列值对数据框中的行进行分组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆