【问题标题】:Assigning value to an iloc slice with condition on a separate column?在单独的列上为具有条件的 iloc 切片分配值?
【发布时间】:2021-05-16 10:33:27
【问题描述】:

我想使用 iloc(而不是 loc)+基于数据框列之一的某些条件对我的数据框进行切片,并为该切片中的所有项目分配一个值(这实际上是主数据框的子集)。

我的简化尝试:

df.iloc[:, 1:21][df['column1'] == 'some_value'] = 1

这是为了获取数据帧的一部分:

  • 所有行;
  • 第 2 至 20 列;

然后再切片:

  • 仅限 column1 = some_value 的行。

切片工作正常,但等于 1 不起作用。 df 没有任何变化,我收到此警告

试图在 DataFrame 的切片副本上设置一个值。尝试改用 .loc[row_indexer,col_indexer] = value

如果可能的话,我真的需要使用 iloc 而不是 loc。感觉应该有办法做到这一点?

【问题讨论】:

    标签: pandas conditional-statements slice


    【解决方案1】:

    您可以在 SO 上搜索错误。简而言之,你应该更新一个loc/iloc

    df.loc[df['column1']=='some_value', df.columns[1:21]] = 1
    

    【讨论】:

      猜你喜欢
      • 2017-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-27
      相关资源
      最近更新 更多