熊猫:根据另一列查找一列中的前10个记录组合

时间:2018-07-31 04:41:02

标签: python pandas

我有2列的表格。第一个是order_id,第二个是item_name。我想要基于order_id的商品组合的前10个选择

数据看起来像

order_id    Item_Name
1   A
1   B
1   C
1   D
2   A
2   B
2   D
2   E
2   B
2   C
3   D
3   E
3   F
3   G
3   A
3   B
4   F
4   D
4   A
4   B
4   C

我希望按管道将排名靠前的组合排名并分隔

  1. A | B | D
  2. B | D | E

组合可以用于任意数量的Item_Name数字

1 个答案:

答案 0 :(得分:0)

IIUC

n=10
df.groupby('order_id').i.value_counts().groupby('order_id').head(n).astype(str).reset_index(name='v').groupby('order_id').i.agg('|'.join)