我正在尝试创建一个函数
- 接收两个单独的CSV文件,
- 找出它们之间的差异,并
- 创建第三个CSV文件,其中填充了属于某个类别的行(如果第1行中CSV A的值出现在CSV B的任何行中)
但这让我陷入了无限循环。
它 * 应该 * 返回大约20-25行,但在VSCode放弃并关闭之前,它陷入了循环并创建了超过2亿行
def valorPivoteo(ftth_osp, pivote, dataLoader):
# for a, sig in array_sig.iterrows():
# for b, sig in array_osp.iterrows():
fila = pd.DataFrame({"FTTH": [ftth_osp], "ID": pivote})
dataLoader = pd.concat([dataLoader, fila])
return dataLoader
## Main which calls the previous def
for i, sig in array_sig.iterrows():
for j, osp in array_osp.iterrows():
if(etc):
etc
elif(etc):
etc
else:
buscarIDOSP = buscarID(valor_sig, array_osp)
if(buscarIDOSP == False):
x = valorReemplazo(ftth_osp, ftth_sig, valor_sig, valor_osp, dataLoader)
dataLoader = pd.concat([dataLoader, x], ignore_index=True)
break
elif(buscarIDOSP == True):
y = valorPivoteo(ftth_osp, pivote, dataLoader)
dataLoader = pd.concat([dataLoader, y], ignore_index=True)
pivote+=1
break
尝试过压缩代码,这样读起来就不那么累了,尝试过创建一个if so,它在i或j中的某个值达到后中断,或者在这里和那里放置一个中断,但都无济于事
1条答案
按热度按时间cidc1ykv1#
在def中,我不应该在dataLoader和fila之间做一个concat。我应该创建fila,把它们的值加起来,然后返回它。这样就解决了这个问题。
总结一下:
希望这对以后的人有帮助!