将相似的行分组为列表熊猫

时间:2020-03-18 10:34:37

标签: python pandas

问题

我在熊猫数据框中导入了一个这样的表:

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

enter image description here

我正在尝试根据操作顺序将相似的行分组到不同的列表中。

例如,在这里我要创建4个列表:

  1. List1应该为[1,3,6],因为这些跟踪具有相同的操作顺序('Create fine','Send fine')
  2. List2应该为[2,5],因为这些跟踪具有相同的操作顺序('Create fine','Payment')
  3. List3应该为[4],因为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

但是现在如何将它们分组到列表中?

1 个答案:

答案 0 :(得分:1)

我认为您的解决方案是第一步,然后按Transform列按汇总Action进行分组:

list