División de pandas (.div) con multiindex
Tengo algo parecido a esto
df = pd.DataFrame(np.random.randint(2, 10, size = (5, 2)))
df.index = pd.MultiIndex.from_tuples([(1, 'A'), (2, 'A'), (4, 'B'),
(5, 'B'), (8, 'B')])
df.index.names = ['foo', 'bar']
df.columns = ['count1', 'count2']
df
lo que da:
count1 count2
foo bar
1 A 6 7
2 A 2 9
4 B 6 7
5 B 4 6
8 B 5 6
También tengo una lista de totales, obtenidos de otra parte, por el mismo índice 'foo':
totals = pd.DataFrame([2., 1., 1., 1., 10.])
totals.index = [1, 2, 4, 5, 8]
totals.index.names = ['foo']
totals
lo que da:
0
foo
1 2
2 1
4 1
5 1
8 10
¿Cómo puedo dividir todas las columnas dedf (count1 ycount2) por el número foo que está entotales? (Por lo tanto, tengo que coincidir con el número 'foo')
lo comprobéesta pregunta, que parece que debería hacer el truco, pero no pude resolverlo.
Lo intenté
df.div(totals, axis = 0)
y cambiando elnivel opción endiv, pero no hay éxito.
Como siempre, muchas gracias por tu tiempo.