2016-09-15 3 views
0

Я новичок в python в целом, но я сделал много исследований, чтобы узнать, смогу ли я найти решение этой проблемы. Надеюсь, вы, ребята, можете помочь.Построение двух групп groupby() в python

Скажите, что A - это dataframe с полями Cost и site. B - аналогичный блок данных с полями затрат и сайта. Я хочу группировать по полю Site и строить A/B для каждого сайта в виде гистограммы.

A= pd.DataFrame({'Cost':[20,30,40,50,60,60,82,92,35], 
       'Site':['S1','S1','S2','S3','S3','S3','S4','S5','S5']}) 
B= pd.DataFrame({'Cost':[40,75,92,105,110,200,15,62,32,12], 
       'Site':['S1','S2','S2','S3','S4','S1','S5','S3','S4','S5']}) 
C=A.groupby('Site')['Cost'].sum()/B.groupby('Site')['Cost'].sum() 

Теперь, как построить график гистограмм для построения графика C, где каждая панель является именем сайта, а отображаемое значение - от C?

ответ

0

Вы почти у цели!

import pylab as P 
t = P.bar(range(5),C,tick_label = C.index, align = 'center') 

Первый аргумент говорит pylab есть 5 баров, второй дает значения от C, tick_label и выравнивания только имя и выравнивания штрих-этикеток.

+0

Спасибо, это работает! –

Смежные вопросы