python - iloc 在循环中替换错误值
问题描述
我正在尝试检查我的数据集并根据某些条件更改 rating_denominator 的值。但是这种方法给了我一个“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
它可能会奏效,让我知道!
推荐阅读
- powerbi - 每日流通股和上下文转换
- javascript - 通过 fetch() 调用 API - 输入意外结束
- swift - 如何在 Swift 中将结构声明为类型别名的返回类型
- asp.net-core - 实体框架核心:检索数据以在多对多关系中查看
- linux - 如何使用样式线为每个点添加价值?
- installation - 安装 ionic Cordova 后 Mac 上的“ionic : command not found”
- android - 可扩展布局向上扩展而不是向下扩展
- php - 无论 Recaptcha 如何提交联系表单 - 怀疑 ajax 验证器
- ios - 如何在 SwiftUI 中获取 iPhone 的屏幕宽度?
- javascript - window.onunload 和 Ajax 导航