Учитывая следующий фрейм данных pandas:
df = pd.DataFrame({'A': ['foo' ] * 3 + ['bar'],
'B': ['w','x']*2,
'C': ['y', 'z', 'a','a'],
'D': rand.randn(4),
})
print df.to_string()
"""
A B C D
0 foo w y 0.06075020
1 foo x z 0.21112476
2 foo w a 0.01652757
3 bar x a 0.17718772
"""
Обратите внимание, что здесь нет комбинации bar,w. При выполнении следующих действий:
pv0 = pandas.pivot_table(df, rows=['A','B'],cols=['C'], aggfunc=numpy.sum)
pv0.ix['bar','x'] #returns result
pv0.ix['bar','w'] #key error though i would like it to return all Nan's
pv0.index #returns
[(bar, x), (foo, w), (foo, x)]
Пока в столбце «C» есть хотя бы одна запись, как в случае foo,x (у него есть только значение «z» в столбце «C»), он будет возвращать NaN для других значений столбца « C' отсутствует для foo,x (например, 'a', 'y')
Я хотел бы иметь все комбинации мультииндексов, даже те, у которых нет данных для всех значений столбцов.
pv0.index #I would like it to return
[(bar, w), (bar, x), (foo, w), (foo, x)]
Я могу обернуть команды .ix в блоки try/except, но есть ли способ, которым панды могут заполнить это автоматически?