KeyError:在用户定义函数中

2024-09-29 00:20:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我有下面的函数打印重复值存在于数据帧。你知道吗

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:“'Country'、'Indicator'、'variable'”

如果我执行下面的脚本,它工作得很好。你知道吗

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

Tags: 数据函数falsedefvariablecountryindicatorprint
1条回答
网友
1楼 · 发布于 2024-09-29 00:20:34

您正在传入一个包含引号和逗号的字符串。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'])

相关问题 更多 >