Pandas 为什么我不能从DataFrame列更改单元格子集中的值?
我正在为数据帧列中单元格的子集编制索引,并尝试将布尔值Pandas 为什么我不能从DataFrame列更改单元格子集中的值?,pandas,slice,Pandas,Slice,我正在为数据帧列中单元格的子集编制索引,并尝试将布尔值True分配给所述子集: df['mycolumn'][df['myothercolumn'] == val][idx: idx + 25] = True 但是,当我切片df['mycolumn'][df['myothercolumn']==val][idx:idx+25]时,仍然可以找到初始值。换句话说,没有应用更改 我要把头发扯下来。我做错了什么?试试这个: df.loc[df['myothercolumn']==val, some_c
True
分配给所述子集:
df['mycolumn'][df['myothercolumn'] == val][idx: idx + 25] = True
但是,当我切片df['mycolumn'][df['myothercolumn']==val][idx:idx+25]
时,仍然可以找到初始值。换句话说,没有应用更改强>
我要把头发扯下来。我做错了什么?试试这个:
df.loc[df['myothercolumn']==val, some_column_name] = True
some\u column\u name
应该是要添加或更改的列的名称。阅读以下内容:,修改副本时,使用.loc或.ix,df.loc[行上的布尔值,列选择器]=True@Jeff,我一定会读的,虽然那是一本很好的百科全书!谢谢你的快速修复!我只是想展示“返回视图与副本”部分。这应该可以解释这个问题(当然我也建议你阅读整个文档!)@Jeff,啊,好的!谢谢你的澄清。我相信我会在某个时候读完整本书;-)