Pandas根据特定的列值将数据帧中的行分组

2024-09-29 17:44:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我有如下一个数据帧

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”对数据帧进行分组,我应该得到以下三个不同的组

^{pr2}$

Tags: 数据dataframeinputmacgw列值pr2dce83f3bc820
2条回答

如果需要不同的groups by columns循环,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

你可以尝试创建一个具有唯一组的数据帧字典

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

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

您可以使用

^{pr2}$

相关问题 更多 >

    热门问题