2017-06-14 1 views
1

ich den folgenden Code verwende zu bezeichnen doppelte ZeilenPython Pandas: Flagge doppelte Zeilen

df['duplicate']=df.Column_A.duplicated() 

Allerdings, wenn ich an der df anschaue, sehe ich folgendes:

I Reihe brauchen 2 auch True zu sein, damit ich die Zeile "duplizieren" einfach filtern kann. Wie kann ich das erreichen?

Antwort

5

Verwenden Sie gemäß docs das keep Argument und legen Sie als False fest. Wie Sie sehen können, ist der Standardwert first.

import pandas as pd 

df = pd.DataFrame({'Column_A': ['AAA', 'AAB', 'AAB', 'AAC']}) 
df['duplicate'] = df.duplicated(keep=False) 

print(df) 

    Column_A duplicate 
0 'AAA'  False 
1 'AAB'  True 
2 'AAB'  True 
3 'AAC'  False 
+0

Nizza Lösung nicht akzeptieren, josh. +1 –

+0

Danke, obwohl @jeangelj tat die meiste Arbeit – josh

3

ich mir vorstellen, in der Wüste verloren und alles, was ich überleben müssen, ist pd.factorize und np.bincount
Bitte, diese Antwort

f, u = pd.factorize(df.Column_A.values) 
df.assign(duplicate=np.bincount(f)[f] > 1) 

    Column_A duplicate 
0  AAA  False 
1  ABC  True 
2  ABC  True 
+0

haha ​​- zu lustig – jeangelj

Verwandte Themen