私はそのような DataFrame を持っています (それは MultiIndexed DataFrame ですか?これを正しく理解しているかどうかはわかりません...):
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()
しかし、これを回避する方法が必要だと思います...