2013-08-01 41 views
8

Nói rằng tôi có một dataframe như sau:Pandas: boxplot của một cột dựa trên một cột

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 

Tôi muốn boxplot tuổi từng Group (A, B, C). Lưu ý rằng tôi có một số giá trị NaN trong khung dữ liệu. Làm thế nào tôi có thể làm điều này trong Pandas?

Trả lời

9

Lần đọc thứ nhất đã đọc để trả lời cho biểu đồ ... keeking bên dưới. cho boxplot mã là:

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

enter image description here

suptitle('Bla Bla') 

thay đổi hoặc thoát khỏi Tiêu đề đầu tạo tự động.

Có thể là một cách thanh lịch hơn, nhưng các công trình sau đây cho biểu đồ:

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 có một số cú pháp ưa thích để làm điều này là tốt. Nhưng vì chỉ có 3 nhóm nên giải pháp đơn giản có lẽ là đủ.

+0

Thanks .. Bạn có biết cách loại bỏ '" Boxplot grouped X "' trong tiêu đề hình? –

+0

Không có dữ liệu ví dụ mở nữa ... nếu trong ipython với mục nhập pylab: chỉ cần tiêu đề ("Boxplot grouped X") nên làm. Nếu không "nhập matplotlib.pylab thành plt" và plt.title (".....") nên làm thủ thuật – Joop

+0

Cảm ơn Joop, tiếc là lệnh tiêu đề chỉ thay đổi phần nói 'Tuổi' trong ô vuông (trong bài viết của bạn), đó là lý do tại sao tôi hỏi. –

Các vấn đề liên quan