2
Цель: Я пытаюсь разделить каждую строку в многоуровневом индексе на общее число в каждой группе.Pandas - Multiindex Division [т. Division by Group]
Более конкретно: Учитывая следующие данные, я хочу, чтобы разделить количество красных и синих шариков от общего числа в каждой группе (т.е. сумма по дате, стране и цвет)
Number
Date Country Colour
2011 US Red 4
Blue 6
2012 IN Red 9
IE Red 5
Blue 5
2013 JP Red 15
Blue 25
Это дало бы следующий ответ:
Number
Date Country Colour
2011 US Red 0.4
Blue 0.6
2012 IN Red 1.0
IE Red 0.5
Blue 0.5
2013 JP Red 0.375
Blue 0.625
Вот код, чтобы воспроизвести данные:
arrays = [np.array(['2011', '2011', '2012', '2012', '2012', '2013', '2013']),
np.array(['US', 'US', 'IN', 'IE', 'IE', 'JP', 'JP', 'GB']),
np.array(['Red', 'Blue', 'Red', 'Red', 'Blue', 'Red', 'Blue', 'Blue'])]
df = pd.DataFrame(np.random.rand(7, 1)*10, index=arrays, columns=['number'])
df.index.names = ['Date', 'Country', 'Colour']
Это идеальный вариант - именно ответ, который я искал! Спасибо! –
Определенно лучше. – ayhan
@ayhan, Большое спасибо :-) –