Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 当我创建一个Python函数来合并两个数据帧并输入各个值时,它就可以工作了。但是当我做循环时,我得到一个键错误_Python 3.x_Pandas_For Loop_Merge_Keyerror - Fatal编程技术网

Python 3.x 当我创建一个Python函数来合并两个数据帧并输入各个值时,它就可以工作了。但是当我做循环时,我得到一个键错误

Python 3.x 当我创建一个Python函数来合并两个数据帧并输入各个值时,它就可以工作了。但是当我做循环时,我得到一个键错误,python-3.x,pandas,for-loop,merge,keyerror,Python 3.x,Pandas,For Loop,Merge,Keyerror,我创建了这个函数: def designate(people,race): global i2 global clilaw i2=i2.sort_values(by=people) i2=pd.merge(i2,clilaw,how='left',left_on=people,right_on='category') i2[race]=i2['race'] 当我单独输入值时,它就起作用了 designate(prl[1],race2[1]) design

我创建了这个函数:

def designate(people,race):
    global i2
    global clilaw
    i2=i2.sort_values(by=people)
    i2=pd.merge(i2,clilaw,how='left',left_on=people,right_on='category')
    i2[race]=i2['race']
当我单独输入值时,它就起作用了

designate(prl[1],race2[1])
designate(prl[2],race2[2])
...
designate(prl[12],race2[12])
但当我尝试创建一个循环来执行此操作时,如下所示:

for k in range(len(prl)):
    designate(prl[k],race2[k])
我得到一个关键错误:

KeyError: 'race'
范围(len(prl))
[0,1,dots,len(prl)-1

在for循环中,您试图访问
指定(prl[0],race2[0])
等等,但是当您手动输入值时,您从
1
开始。这可能是问题吗?如果是,请尝试
范围(1,len(prl)+1)
我现在明白了。每次合并完成时,都会有不同的race列(race\ux,race\y)因此在下一次迭代中,i2['race']不会被识别