我有orderID和ProductID的数据集。
Order_ID, Item_ID, freq
101,121,2
我想检查在任何特定订单中哪个Item_ID多次出现。
输出>
var timestamp = new Date('9999-12-31T00:00:00Z').getTime()
在python中这是最有效的方法吗?
答案 0 :(得分:3)
首先使用groupby
或size
使用value_counts
,然后按query
或boolean 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