Построить сгруппированную гистограмму из двух листов Excel с первичным ключом?

У меня есть два листа Excel следующим образом:

Лист1

Sheet2

Мне нужно построить график каждого Grade (A, B, C,..) в каждом Region (Region1, Region2,..) в сгруппированной гистограмме.

Я загрузил два листа с помощью панд следующим образом:

xl = pd.ExcelFile("D:/Works.xlsx")
df = xl.parse("Sheet1")
ds = xl.parse("Sheet2")

Затем я объединил листы в один фрейм данных:

data_set = pd.merge(df, ds, how='left')

Фрейм данных data_set тиражируется как:

data_set = pd.DataFrame({'Center_ID': ['E25007','E08003','E17020','E08004','E25007','E08035','E08614','E08026','E25023','E17006','E25007','E08004'],
 'Grade': ['A', 'B', 'B', 'A', 'C', 'F', 'A', 'A', 'E', 'F', 'C', 'B'],
 'Name': ['Jack','Eliana','Frank','Sheila','Irene','Celine','Sebastian','Teun','Silvia','Luis','Catalina','Patricia'],
 'Region': ['Region1',None,'Region4','Region3','Region1','Region2','Region2','Region3','Region3','Region2','Region1','Region3'],
 'Sector': ['Sector1',None,'Sector1','Sector3','Sector1','Sector1','Sector3','Sector2','Sector1','Sector2','Sector1','Sector3']})

Что я могу сделать дальше, чтобы создать сгруппированную гистограмму?

1 ответ

Решение

Вы можете получить желаемый результат двумя способами. Либо сгруппированы:

data_set.groupby(['Region','Grade'])['Grade'].count().unstac‌​k('Grade').fillna(0)‌​.plot(kind='bar')

сгруппированные барные участки

или же stacked:

data_set.groupby(['Region','Grade'])['Grade'].count().unstac‌​‌​k('Grade').fillna(‌​0)‌​.plot(kind='bar'‌​,sta‌​cked=True)

штабелированные барные участки

Спасибо!

Другие вопросы по тегам