2
如果DataFrame中存在NaN,我無法爲行的子集分配DataFrame列。我不知道,這是一個錯誤還是我誤解了一些東西?如何使用NaN將矢量分配到pandas DataFrame中列的行子集?
第一關,如果沒有NaN的,我想這似乎工作:
>>> import pandas as pd
>>> d = pd.DataFrame({ 'one' : [1, 2, 3], 'two' : [1,2,3] })
>>> d
one two
0 1 1
1 2 2
2 3 3
>>> d.ix[d['one']>1, 'two'] = -d['two']
>>> d
one two
0 1 1
1 2 -2
2 3 -3
然而,加入滋擾NaN的行會導致非直觀的結果:
>>> nan = float('nan')
>>> d = pd.DataFrame({ 'one' : [1, 2, 3, nan, nan], 'two' : [1,2,3,4,5] })
>>> d
one two
0 1 1
1 2 2
2 3 3
3 NaN 4
4 NaN 5
>>> d.ix[d['one']>1, 'two'] = -d['two']
>>> d
one two
0 1 1
1 2 -2
2 3 -2
3 NaN 4
4 NaN 5
是怎麼回事這裏?這是與Python 2.7.5和熊貓0.11。
[哦,我明白了 - 這是第二個'-2'。] – DSM
這很快就會在dev(0.11.1)中修復。 –
@AndyHayden:我只是在尋找問題#。你有手嗎? – DSM