Groupby在python中重复

时间:2018-05-08 08:09:35

标签: python python-3.x pandas

我有orderID和ProductID的数据集。

Order_ID, Item_ID, freq
101,121,2

我想检查在任何特定订单中哪个Item_ID多次出现。

输出>

var timestamp = new Date('9999-12-31T00:00:00Z').getTime()

在python中这是最有效的方法吗?

1 个答案:

答案 0 :(得分:3)

首先使用groupbysize使用value_counts,然后按queryboolean indexing进行过滤 - 在较大的DataFrame中加快速度:

df1 = df.groupby(['Order_ID','Item_ID']).size().reset_index(name='freq').query('freq > 1')

替代:

df1=df.groupby('Order_ID')['Item_ID'].value_counts().reset_index(name='freq').query('freq>1')

或者:

df1 = df.groupby(['Order_ID','Item_ID']).size().reset_index(name='freq')
df1 = df1[df1['freq'] > 1]
print (df1)
   Order_ID  Item_ID  freq
0       101      121     2