【问题标题】:iloc in a loop to replace wrong valuesiloc 在循环中替换错误值
【发布时间】:2021-01-05 15:17:27
【问题描述】:

我正在尝试检查我的数据集并根据某些条件更改 rating_denominator 的值。但是这个方法给了我一个'IndexError: single positional indexer is out-of-bounds'的错误信息。

如果你们有任何线索,那就太棒了。

谢谢

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

【问题讨论】:

标签: python pandas dataframe loops


【解决方案1】:

也许使用 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

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

【讨论】:

    猜你喜欢
    • 2021-11-18
    • 2015-03-22
    • 2016-03-04
    • 2021-12-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-26
    • 2016-07-14
    • 2021-09-24
    相关资源
    最近更新 更多