2017-07-30 16 views
-2

以下の関数を使用して、重複した値をdataframeに出力することができます。KeyError:ユーザ定義関数

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

データを渡して、重複を確認するためのフレーム名と列のリストを渡します。

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

しかし、エラーの下になって: KeyError例外: " '国'、 'インジケータ'、 '変数'"

私は、スクリプトの下に実行すると、それが正常に動作します。

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

答えて

0

あなたは引用符とコンマを含む、文字列で渡しています。 Pythonはそれを3つの別々の文字列として解釈しません。それらの引用符とカンマは特別な意味を持ちません。文字列の中の単なるデータです。

直接にcolumnListを渡すためにあなたの関数を変更:

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

と実際のリストを渡す:

duplicateCrosscheck(dataT, ['Country', 'Indicator', 'variable']) 
関連する問題