微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Python Pandas使用Additional Column标识重复的行

我有以下Dataframe:

df
Out[23]: 
   PplNum  RoomNum  Value
0       1        0    265
1       1       12    170
2       2        0    297
3       2       12     85
4       2        0     41
5       2       12    144

通常,PplNum和RoomNum是这样生成的,它将始终遵循以下格式:

for ppl in [1,2,2]:
    for room in [0, 12]:
        print(ppl, room)

1 0
1 12
2 0
2 12
2 0
2 12

但现在我想要实现的是标记PplNum和RoomNum的重复组合,以便我可以知道哪个组合是第一次出现,哪个是第二次出现等等……所以预期的输出Dataframe将是这样的:

    PplNum  RoomNum  Value  C
0       1        0    265  1
1       1       12    170  1
2       2        0    297  1
3       2       12     85  1
4       2        0     41  2
5       2       12    144  2

解决方法:

你可以使用groupby()cumcount()功能一起完成:

In [102]: df['C'] = df.groupby(['PplNum','RoomNum']).cumcount() + 1

In [103]: df
Out[103]:
   PplNum  RoomNum  Value  C
0       1        0    265  1
1       1       12    170  1
2       2        0    297  1
3       2       12     85  1
4       2        0     41  2
5       2       12    144  2

说明:

In [101]: df.groupby(['PplNum','RoomNum']).cumcount() + 1
Out[101]:
0    1
1    1
2    1
3    1
4    2
5    2
dtype: int64

Group-By examples

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐