iloc在循环中替换错误的值



我正试图查看我的数据集,并根据某些条件更改rating_denomator的值。但这个方法给了我一个"IndexError:单个位置索引器越界"的错误消息。

如果你们中的任何人有任何线索,那将是很棒的。

感谢

for i, row in twitter_copy[twitter_copy.rating_denominator != 10].iterrows():
d = row.rating_denominator
k = row.rating_numerator
if d == 0:
# twitter_copy.rating_denominator.replace(d,10, inplace=True)
twitter_copy.iloc[i]['rating_denominator'] = 10
elif d < 10 and k > 10:
#twitter_copy.rating_denominator.replace(d,10, inplace=True)
twitter_copy.iloc[i]['rating_denominator'] = 10
else:
twitter_copy.iloc[i]['rating_denominator'] = 10

也许使用df.loc而不是iloc可能会对您有所帮助?

for i in df[df['columnA'!=10]]:
df.loc[df['columnA'] <10 & df['columnB']>10, 'columnA'] = 10
df.loc[df['columnA'] == 0, 'columnA'] = 10

它可能会起作用,让我知道!

最新更新