我的数据集如下所示:
OwnerID GroupID AssignmentID ... <few more columns> [Need this column]
1 10 100 1
1 10 100 1
1 10 200 2
1 20 100 1
1 20 200 2
1 20 300 3
2 30 200 1
2 30 200 1
2 40 300 2
我想根据OwnerID
、GroupID
和AssignmentID
字段中的值填充一个列。如果这些字段中的值跨行相同,那么我希望在新列中重复数字1
。但是,如果同一所有者为同一组分配了不同的分配,则新列中的值应该递增。你知道吗
例如-OwnerID
1
分配了2个赋值(2个具有相同的AssignmentID
100,另一个具有AssignmentID
200)。在这两种情况下,AssignmentID
100都获得值1
,因为OwnerID
、GroupID
和AssignmentID
的值相同,但当AssignmentID
为200时获得值2。你知道吗
类似地,当OwnerID
100分配AssignmentID
100、200和300时,这些分配给的组已更改为20。你知道吗
我认为这可以通过以下代码来实现:
AssignmentDetails['colname'] = AssignmentDetails.groupby(['ownerid','groupid','assignmentid']).cumcount()
但这并没有给我要求的结果。当'groupby'子句中的值相同时,它不会重复新列中的值,但会增加值。你知道吗
我如何做到这一点?任何帮助都会很好。你知道吗
或者
相关问题 更多 >
编程相关推荐