如何使用链索引直接将值分配给数据框?

时间:2014-09-17 19:01:17

标签: python pandas

我正在做的事情如下:

for i in range(0, len(x.index)-1):
    x['Low'][i][x['Low'][i] == 0.0] =  np.mean(avg_low)

基本上,我有一个名为x的数据框,我想访问列' Low'在该数据帧和特定行i中。如果数据帧中的元素等于0.0,我想将该值更新为np.mean(avg_low)。出于某种原因,当我打印整个数据帧时,没有任何更改,并且当它们应该被更新时,所有值仍然等于0.0。我担心的是,当我使用这种类型的链索引时,我正在修改视图而不是实际的数据帧。关于何时返回某个视图,文档有点令人困惑,所以我想要澄清这个具体的例子。感谢。

1 个答案:

答案 0 :(得分:0)

您应该能够x.ix[x['Low'][i] == 0.0, 'Low'] = np.mean(avg_low)

另外,我不确定你的DataFrame是什么样的,但我认为你应该能够x.ix[x['Low'] == 0, 'Low'] = np.mean(avg_low)一次设置所有值,而不必迭代。