2013-08-01 7 views
8

Скажем, у меня есть dataframe как следующее:Панды: boxplot из одного столбца, основанные на другой колонке

my_dataframe: 

    Age Group 
0 31 A 
1 24 A 
2 25 A 
3 36 A 
4 50 NaN 
5 27 A 
6 49 A 
7 24 A 
8 63 A 
9 25 A 
10 65 A 
11 67 A 
12 59 A 
13 NaN B 
14 30 B 
15 19 B 
16 57 B 
17 62 B 
18 30 B 
19 50 B 
20 42 B 
21 45 C 
22 59 C 
23 28 C 
24 37 C 
25 29 C 

Я хотел бы boxplot возраст каждой группы (А, В, С). Примечание, что у меня есть значения NaN в кадре данных. Как я могу это сделать в Пандах?

ответ

9

Несчастный 1-й раз так дал ответ для гистограмм ... кикал это ниже. для boxplot код:

bp = df.boxplot(by='Group') 

enter image description here

suptitle('Bla Bla') 

изменить или избавиться от автоматически сгенерированной верхней Title.

Может быть более элегантный способ, но следующие работы для гистограмм:

df[df.Group =='A'].Age.hist() 
df[df.Group =='B'].Age.hist() 
df[df.Group =='C'].Age.hist() 

http://pandas.pydata.org/pandas-docs/dev/visualization.html имеет некоторые фантазии синтаксис, чтобы сделать это, а также. Но поскольку только 3 группы, возможно, достаточно простого решения.

+0

Спасибо .. Знаете ли вы, как избавиться от '' Boxplot сгруппированы X "' в названии фигуры? –

+0

У вас больше нет данных для примера ... если в ipython с импортом pylab: просто заголовок («Boxplot grouped X») должен делать. В противном случае «import matplotlib.pylab as plt» и plt.title («.....») должен сделать трюк – Joop

+0

Спасибо Joop, к сожалению, команда title просто изменяет часть, которая говорит «Age» в boxplot (в вашем посте), вот почему я спросил. –

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