Tenho um dataframe Pandas df
. Ele possui múltiplos índices com Gx.Region e Scenario_Model. O índice Scenario_Model é ordenado em ordem alfabética: des, pes, tes. Quando o ploto, ele aparece na mesma ordem. No entanto, quero reordená-lo como pes, tes e des, e plotá-lo de acordo. É possível fazer isso no dataframe Pandas em Python?
dict = {('Value', 2023, 'BatteryStorage'): {('Central Africa', 'des'): 0.0,
('Central Africa', 'pes'): 0.0,
('Central Africa', 'tes'): 0.0,
('Eastern Africa', 'des'): 0.0,
('Eastern Africa', 'pes'): 0.0,
('Eastern Africa', 'tes'): 0.0,
('North Africa', 'des'): 0.0,
('North Africa', 'pes'): 0.0,
('North Africa', 'tes'): 0.0,
('Southern Africa', 'des'): 504.0,
('Southern Africa', 'pes'): 100.0,
('Southern Africa', 'tes'): 360.0,
('West Africa', 'des'): 0.0,
('West Africa', 'pes'): 0.0,
('West Africa', 'tes'): 0.0},
('Value', 2023, 'Biomass PP'): {('Central Africa', 'des'): 0.0,
('Central Africa', 'pes'): 0.0,
('Central Africa', 'tes'): 0.0,
('Eastern Africa', 'des'): 40,
('Eastern Africa', 'pes'): 10,
('Eastern Africa', 'tes'): 50,
('North Africa', 'des'): 0.0,
('North Africa', 'pes'): 0.0,
('North Africa', 'tes'): 0.0,
('Southern Africa', 'des'): 90.0,
('Southern Africa', 'pes'): 43.0,
('Southern Africa', 'tes'): 50.0,
('West Africa', 'des'): 200.0,
('West Africa', 'pes'): 150.0,
('West Africa', 'tes'): 100}}
df_sample = pd.DataFrame.from_dict(dict)
df_sample.plot(kind = "bar",
stacked = True)
Uma abordagem rápida e fácil, se você conhece as categorias, seria
reindex
:Uma abordagem mais canônica (mas mais complexa) seria tornar o segundo nível ordenado
Categorical
:Saída: