我有一個表是這樣的:大熊貓選擇行如果ID出現幾個時間
CustID Purchase Time
A Item1 01/01/2011
B Item2 01/01/2011
C Item1 01/02/2011
A Item2 03/01/2011
我想與客戶ID,選擇表中的行出現超過1。
我有一個表是這樣的:大熊貓選擇行如果ID出現幾個時間
CustID Purchase Time
A Item1 01/01/2011
B Item2 01/01/2011
C Item1 01/02/2011
A Item2 03/01/2011
我想與客戶ID,選擇表中的行出現超過1。
這可能工作:
counts = df['CustID'].value_counts()
df[df['CustID'].isin(counts.index[counts > 1])]
結果:
CustID Purchase Time
0 A Item1 01/01/2011
3 A Item2 03/01/2011
使用filter
df.groupby('CustID').filter(lambda x: len(x) > 1)
CustID Purchase Time
0 A Item1 01/01/2011
3 A Item2 03/01/2011
謝謝!真的有幫助 –
df[df['CustID'].duplicated(keep=False)]
這會找到數據框中CustID
列中存在重複項的行。該keep=False
告訴duplicated
功能,所有重複行標記爲True
(而不是僅僅在第一個或最後的):
CustID Purchase Time
0 A Item1 01/01/2011
3 A Item2 03/01/2011
編輯
在文檔尋找duplicated
它看起來像你可以也可做:
df[df.duplicated('CustID', keep=False)]
雖然這似乎是比原來慢約100微秒(μs的458與545微秒基礎上,例如數據幀)
這是我的方法,加上一個。爲了提高效率,你可以將'sort = False'傳遞給'value_counts' – piRSquared
好的答案!不過,您的大括號/父母在第二行是倒退的。我會編輯自己,但希望避免破壞我手機上格式的風險:) – miradulo