我有这样一个数据帧(它是一个MultiIndexed数据帧我不知道如果我理解正确这...?):大熊猫 - 选择一个较低的水平在一个数据帧做ffill
df = pd.DataFrame({'index' : range(8),
'variable1' : ["A","A","B","B","A","B","B","A"],
'variable2' : ["a","b","a","b","a","b","a","b"],
'variable3' : ["x","x","x","y","y","y","x","y"],
'result': [1,0,0,1,1,0,0,1]})
df2 = df.pivot_table(values='result',rows='index',cols=['variable1','variable2','variable3'])
variable1 A B
variable2 a b a b
variable3 x y x y x y
index
0 1 NaN NaN NaN NaN NaN
1 NaN NaN 0 NaN NaN NaN
2 NaN NaN NaN NaN 0 NaN
3 NaN NaN NaN NaN NaN 1
4 NaN 1 NaN NaN NaN NaN
5 NaN NaN NaN NaN NaN 0
6 NaN NaN NaN NaN 0 NaN
7 NaN NaN NaN 1 NaN NaN
现在我想要做的是ffill()
的值,但仅限于variable3 == 'y'
。期望的结果是:
variable1 A B
variable2 a b a b
variable3 x y x y x y
index
0 1 NaN NaN NaN NaN NaN
1 NaN NaN 0 NaN NaN NaN
2 NaN NaN NaN NaN 0 NaN
3 NaN NaN NaN NaN NaN 1
4 NaN 1 NaN NaN NaN 1
5 NaN 1 NaN NaN NaN 0
6 NaN 1 NaN NaN 0 0
7 NaN 1 NaN 1 NaN 0
我知道我可以通过遍历variable1
和variable2
,为他们每个人做这样的事情做到这一点:
df2['A']['a']['y'].ffill()
但我想应该有避免的方法这...
大。在生产环境中,我正在苦于'AttributeError:_ref_locs',但我想这与......无关。 –
0.12中有一些错误导致出现(它与列中的重复项有关)。 – Jeff