4 python dataframe pandas running-count
我有以下数据框:
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
Run Code Online (Sandbox Code Playgroud)
一般来说,PplNumandRoomNum是这样生成的,并且它总是遵循以下格式:
for ppl in [1,2,2]:
for room in [0, 12]:
print(ppl, room)
Run Code Online (Sandbox Code Playgroud)
1 0
1 12
2 0
2 12
2 0
2 12
Run Code Online (Sandbox Code Playgroud)
但现在我想要实现的是标记 和 的那些重复组合,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
Run Code Online (Sandbox Code Playgroud)
您可以使用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
Run Code Online (Sandbox Code Playgroud)
解释:
In [101]: df.groupby(['PplNum','RoomNum']).cumcount() + 1
Out[101]:
0 1
1 1
2 1
3 1
4 2
5 2
dtype: int64
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
144 次 |
| 最近记录: |