我有這樣一個數據幀(它是一個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