熊猫分配到切片

时间:2015-08-04 14:00:07

标签: python pandas

我有一些旧的python代码,我必须从pandas 0.10过渡到0.15大跳转。旧的python代码使用以下结构对切片进行多次赋值:

condition = a['Column'] != 'option' #  with lots of complex logic
df.ColumnX[condition] = new_value

我知道这是一个切片。在熊猫10中,这有效,正如各种熊猫升级中记载的那样,它不起作用。完全不需要重构代码是一种更改第2行的方法,这样它仍然可以使用loc方法,同时仍然使用第1行定义的条件。

我试过了:

df.loc[:,condition] = 'new_val'

但我得到

  

IndexingError:提供了无法对齐的布尔系列键

任何人都可以建议一种语法(最好向后兼容pandas 0.10,这样可以提供快速修复,而无需重新分解数十种复杂的选择吗?

1 个答案:

答案 0 :(得分:2)

df.ColumnX[condition] = new_value的替代方案是:

df.loc[condition, 'ColumnX'] = new_value

因此,您将condition置于错误的位置,尝试对列进行切片而不是对行进行切片,因此错误消息表明它是无法对齐的。

相关问题