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


有只小跳蛙
浏览 246回答 2
2回答

UYOU

如果需要按列循环按groupby对象进行不同的组:for i, g in df.groupby(['gw_mac','mac']):    print (g)         gw_mac           mac1  ac233fc015f6  ac233f264a4c2  ac233fc015f6  ac233f264a4c4  ac233fc015f6  ac233f264a4c5  ac233fc015f6  ac233f264a4c         gw_mac           mac0  ac233fc015f6  dce83f3bc8203  ac233fc015f6  dce83f3bc8206  ac233fc015f6  dce83f3bc820         gw_mac           mac7  ac233fc015f6  e464eecba5eb

猛跑小猪

您可以尝试使用此方法创建具有唯一组的数据框字典,df['Group'] = df.groupby(['gw_mac', 'mac']).cumcount()dfs = dict(tuple(df.groupby('Group')))您可以使用访问组,dfs[0]    gw_mac          mac             Group0   ac233fc015f6    dce83f3bc820    01   ac233fc015f6    ac233f264a4c    07   ac233fc015f6    e464eecba5eb    0
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python