2017-10-26 1 views
1

Ich versuche drop_duplicates auf einer Säule eines dataframe, dataframePandas drop_duplicates unhashable Typ: 'numpy.ndarray', 'Set' und 'Liste'

A   len 
['1', '2'] 2 
['1', '2'] 2 
['3']  1 
['4', '5'] 2 
['4', '5'] 2 

Das Ergebnis verwenden sollte wie

aussehen
A   len 
['1', '2'] 2 
['3']  1 
['4', '5'] 2 

ich habe df.drop_duplicates('A', inplace=True) versucht, aber eine Fehlermeldung anzeigt,

unhashable type: 'numpy.ndarray' 

Ich habe auch A in Listen konvertiert und setzt df['A'].apply(list) und df['A'].apply(set) und dann drop_duplicates, aber alle mit unhashable type: 'set' and 'list'. Ich frage mich, wie ich das Problem lösen kann.

Antwort

3

Sie benötigen tuple:

df['A'].apply(tuple) 

So duplicated mit boolean indexing verwenden:

df = df[~df['A'].apply(tuple).duplicated()] 
print (df) 
     A len 
0 [1, 2] 2 
2  [3] 1 
3 [4, 5] 2 
Verwandte Themen