How to generate a horizontal multiple chart using python

Good afternoon, I'm doing a job for college where I need to generate a multiple chart in horizontal bars.

I am using the following code:

df_escolaridade['Espacialidades'] = df_escolaridade['Espacialidades'].astype("string") 
df_escolaridade

index = []
for col in df_escolaridade.columns[2:]: 
  df_escolaridade[col] = pd.to_numeric(df_escolaridade[col],errors='coerce')
  index.append(col)

ax = df_escolaridade.plot.barh(figsize=(15,10), y = index)

And generated this result: insert the description of the image here

But I would like the chart to be separated by city, example of the chart generated in excel: insert the description of the image here

Follows dataframe I'm using:

insert the description of the image here

Since now I appreciate the answers, very much thank you!

Author: Miguel Botelho, 2020-09-26

1 answers

Imports:

import pandas as pd
import matplotlib.pyplot as plt

Loading data frame:

df_escolaridade = pd.read_csv('./dataframe.csv', index_col=[0])
df_escolaridade.drop(columns = 'Código', inplace = True)

Checking data types:

df_escolaridade.dtypes
% dos ocupados com fundamental completo - 18 anos ou mais 2010    float64
% dos ocupados com médio completo - 18 anos ou mais 2010          float64
% dos ocupados com superior completo - 18 anos ou mais 2010       float64
% de 18 a 20 anos com médio completo 2010                         float64
% de 15 a 17 anos com fundamental completo 2010                   float64
% de 18 a 24 anos com fundamental completo 2010                   float64
% de 18 anos ou mais com fundamental completo 2010                float64
% de 25 anos ou mais com fundamental completo 2010                float64
% de 18 a 24 anos com médio completo 2010                         float64
% de 18 anos ou mais com médio completo 2010                      float64
% de 25 anos ou mais com médio completo 2010                      float64
% de 25 anos ou mais com superior completo 2010                   float64
Expectativa de anos de estudo 2010                                float64

this is where we shift the columns to the rows, making the pivot.

'pivoting' or data frame:

df_pivotado = pd.pivot_table(df_escolaridade, values = df_escolaridade.columns, 
                                columns='Espacialidades')

Plotting the graph:

df_pivotado.plot(kind = 'barh', figsize = (15,10))
 -1
Author: lmonferrari, 2020-09-28 00:53:36