python else 语句导致连续循环

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

不明白为什么我的 Python else 语句会导致无限循环?

m = 0
while m < len(dataframe):
    if dataframe['firstname'].iloc[m] == 'Donald':
       dataframe.loc[m, 'lastname'] = 'Trump'
    elif dataframe['firstname'].iloc[m] == 'Joe':
       dataframe.loc[m, 'lastname'] = 'Biden'
    elif dataframe['firstname'].iloc[m] == 'Barrack':
       dataframe.loc[m, 'lastname'] = 'Obama'
    else:
       dataframe.loc[m, 'lastname'] = 'last name does not matter'
   
    m+=1
python if-statement
1个回答
0
投票

我已经在本地测试了你的代码。我没有无限循环。这是我的代码:

import pandas as pd
dataframe = pd.DataFrame({"firstname": ["Donald", "Joe", "Barrack", "Kamala"], "lastname": ["", "", "" ,""]})
m = 0
while m < len(dataframe):
    if dataframe['firstname'].iloc[m] == 'Donald':
       dataframe.loc[m, 'lastname'] = 'Trump'
    elif dataframe['firstname'].iloc[m] == 'Joe':
       dataframe.loc[m, 'lastname'] = 'Biden'
    elif dataframe['firstname'].iloc[m] == 'Barrack':
       dataframe.loc[m, 'lastname'] = 'Obama'
    else:
       dataframe.loc[m, 'lastname'] = 'last name does not matter'
   
    m+=1
print(dataframe)

我建议使用循环,这样你就不会得到无限循环:

import pandas as pd
dataframe = pd.DataFrame({"firstname": ["Donald", "Joe", "Barrack", "Kamala"], "lastname": ["", "", "" ,""]})
for i in range(len(dataframe)):
    if dataframe['firstname'].iloc[i] == 'Donald':
       dataframe.loc[i, 'lastname'] = 'Trump'
    elif dataframe['firstname'].iloc[i] == 'Joe':
       dataframe.loc[i, 'lastname'] = 'Biden'
    elif dataframe['firstname'].iloc[i] == 'Barrack':
       dataframe.loc[i, 'lastname'] = 'Obama'
    else:
       dataframe.loc[i, 'lastname'] = 'last name does not matter'
   
print(dataframe)

希望这有帮助!

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.