通过精美索引过滤后将更改合并回熊猫数据框的最简单方法是什么?
例如,定义一个数据框,有两列 x 和 y,并选择所有 x 为偶数的行,然后将 y 中的对应值设置为 0。
d = pd.DataFrame({'x':range(10), 'y':range(11,21)})
d[d.x % 2 == 0]['y'] = 0
“花式索引”布尔查询会复制数据帧,因此更改永远不会传播回原始数据帧。执行此操作有更好的方法吗?
我目前的解决方案是定义一个临时数据框 w,基于花哨的布尔索引,将 w 中的 'y' 中的相应值设置为 0,然后使用索引将 w 合并回 d。必须有一种更有效(希望更直接)的方式来做到这一点:
w = d[d.x % 2 == 0]
w.y = 0