不明白为什么我的 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
我已经在本地测试了你的代码。我没有无限循环。这是我的代码:
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)
希望这有帮助!