我想使用 iloc(而不是 loc)+一些基于数据帧列之一的条件对我的数据帧进行切片,并为该切片中的所有项目(实际上是主数据帧的子集)分配一个值。
我的简化尝试:
df.iloc[:, 1:21][df['column1'] == 'some_value'] = 1
这是为了获取数据帧的一部分:
然后再切片:
切片工作正常,但将此等于 1 不起作用。 df 没有任何变化,我收到此警告
<块引用>正在尝试在来自 DataFrame 的切片副本上设置值。尝试使用 .loc[row_indexer,col_indexer] = value 代替
如果可能的话,我真的需要使用 iloc 而不是 loc。感觉应该有办法做到这一点?
答案 0 :(得分:1)
您可以在 SO 上搜索错误。简而言之,您应该更新一个loc/iloc
:
df.loc[df['column1']=='some_value', df.columns[1:21]] = 1