我在熊猫数据框中导入了一个这样的表:
Trace,Action
1,Create Fine
1,Send Fine
2,Create Fine
2,Payment
3,Create Fine
3,Send Fine
4,Insert Fine Notification
4,Add penalty
4,Payment
4,Payment
5,Create Fine
5,Payment
6,Create Fine
6,Send Fine
7,Insert Fine Notification
7,Add penalty
7,Send for Credit Collection
我正在尝试根据操作顺序将相似的行分组到不同的列表中。
例如,在这里我要创建4个列表:
List1
应该为[1,3,6]
,因为这些跟踪具有相同的操作顺序('Create fine','Send fine') List2
应该为[2,5]
,因为这些跟踪具有相同的操作顺序('Create fine','Payment') List3
应该为[4]
,因为4
是具有该操作顺序的唯一跟踪记录List4
应该为[7]
,因为7
是具有该操作顺序的唯一跟踪记录在大熊猫中可以这样做吗?
我设法将类似的行合并成这样:
df.groupby('Trace').agg({'Action':', '.join}).reset_index()
然后我得到一个这样的数据框:
ID Trace Action
0 1 Create Fine, Send Fine
1 2 Create Fine, Payment
2 3 Create Fine, Send Fine
3 4 Insert Fine Notification, Add penalty, Payment
4 5 Create Fine, Payment
5 6 Create Fine, Send Fine
6 7 Insert Fine Notification, Add penalty, Send for credit collection
但是现在如何将它们分组到列表中?
答案 0 :(得分:1)
我认为您的解决方案是第一步,然后按Transform
列按汇总Action
进行分组:
list