为什么此ID生成代码会产生KeyError:-1

问题描述 投票:0回答:2

我这部分代码中的问题导致KeyError:-1

你们中的任何人都知道可能是什么原因吗?

for i in range(len(B130317)):
    if B130317['LON'][i] != B130317['LON'][i-1]:
        currentID += 1
    newID.append(currentID)
python dataframe spyder id keyerror
2个回答
1
投票

基于@Badgy的评论:

for i in range(1,len(B130317)):
    if B130317['LON'][i] != B130317['LON'][i-1]:
        currentID += 1
    newID.append(currentID)

或:

for i in range(len(B130317)-1):
    if B130317['LON'][i] != B130317['LON'][i+1]:
        currentID += 1
    newID.append(currentID)

1
投票

如果B130317['LON']为空列表,则B130317['LON'][i-1]i=0将引发KeyError: -1异常。我不知道您的业务逻辑是什么,但是也许您应该考虑将循环更改为:

for i in range(len(B130317['LON'])):
# your logic
© www.soinside.com 2019 - 2024. All rights reserved.