KeyError:在用户定义的函数中

时间:2017-07-30 11:01:10

标签: python pandas dataframe

我有以下功能来打印数据帧中存在的重复值。

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)]

1 个答案:

答案 0 :(得分: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'])