大熊猫喜欢索引和合并

时间:2013-01-12 16:51:07

标签: python pandas

通过花式索引进行过滤后,将更改合并回pandas数据帧的最简单方法是什么?

例如,定义一个包含两列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

1 个答案:

答案 0 :(得分:3)

使用DataFrame.ix []:

In [21]: d
Out[21]: 
   x   y
0  0  11
1  1  12
2  2  13

In [22]: d.ix[d.x % 2 == 0, 'y'] = -5

In [23]: d
Out[23]: 
   x   y
0  0  -5
1  1  12
2  2  -5