2017-07-30 3 views
-2

Ich habe unten Funktion, um doppelte Werte im Dataframe zu drucken.KeyError: in benutzerdefinierter Funktion

Ich werde Daten übergeben Name und Liste der Spalten, um Dubletten zu überprüfen.

duplicateCrosscheck(dataT, "'Country', 'Indicator', 'variable'") 

Aber unter Fehler bekommen: KeyError: " 'Land', 'Anzeige', 'Variable'"

Wenn ich unten Skript ausführen, funktioniert es gut.

dataT[dataT.duplicated(['Country', 'Indicator', 'variable'], keep=False)] 

Antwort

0

Sie passieren in eine Zeichenfolge, mit Anführungszeichen und Komma. Python interpretiert das nicht als 3 separate Strings, nein. Diese Anführungszeichen und Kommas haben keine besondere Bedeutung, sie sind nur mehr Daten innerhalb einer Zeichenkette.

Passen Sie Ihre Funktion columnList auf direkt weitergeben müssen:

def duplicateCrosscheck(dataDF, columnList): 
    print('Duplicate checking', columnList) 
    dataDup = dataDF[dataDF.duplicated(columnList, keep=False)] 
    print(dataDup.values) 
    return 

und in einer aktuellen Liste übergeben:

duplicateCrosscheck(dataT, ['Country', 'Indicator', 'variable'])