Phân phối dữ liệuTrước đó trong hướng dẫn này, chúng tôi đã làm việc với một lượng dữ liệu rất nhỏ trong các ví dụ của chúng tôi, chỉ để hiểu các khái niệm khác nhau. Show
Trong thế giới thực, các bộ dữ liệu lớn hơn nhiều, nhưng có thể khó thu thập dữ liệu trong thế giới thực, ít nhất là ở giai đoạn đầu của một dự án. Làm thế nào chúng ta có thể có được bộ dữ liệu lớn?Để tạo các bộ dữ liệu lớn để thử nghiệm, chúng tôi sử dụng mô -đun Python Numpy, đi kèm với một số phương pháp để tạo các bộ dữ liệu ngẫu nhiên, ở mọi kích thước. Thí dụTạo một mảng chứa 250 phao ngẫu nhiên trong khoảng từ 0 đến 5: Nhập khẩu Numpy x = numpy.random.uniform (0,0, 5.0, 250) in (x) Hãy tự mình thử » Biểu đồĐể trực quan hóa tập dữ liệu, chúng ta có thể vẽ một biểu đồ với dữ liệu chúng ta đã thu thập được. Chúng tôi sẽ sử dụng mô -đun Python matplotlib để vẽ biểu đồ. Tìm hiểu về mô -đun matplotlib trong hướng dẫn matplotlib của chúng tôi. Thí dụTạo một mảng chứa 250 phao ngẫu nhiên trong khoảng từ 0 đến 5: Nhập khẩu Numpy x = numpy.random.uniform (0,0, 5.0, 250) in (x) Result:Hãy tự mình thử » Biểu đồĐể trực quan hóa tập dữ liệu, chúng ta có thể vẽ một biểu đồ với dữ liệu chúng ta đã thu thập được. Chúng tôi sẽ sử dụng mô -đun Python matplotlib để vẽ biểu đồ. Tìm hiểu về mô -đun matplotlib trong hướng dẫn matplotlib của chúng tôi. Etc. Vẽ biểu đồ:
Thanh đầu tiên biểu thị số lượng giá trị trong mảng nằm trong khoảng từ 0 đến 1. The array values are random numbers and will not show the exact same result on your computer. Thanh thứ hai đại diện cho bao nhiêu giá trị từ 1 đến 2.Mà mang lại cho chúng ta kết quả này:
Thí dụTạo một mảng chứa 250 phao ngẫu nhiên trong khoảng từ 0 đến 5: Nhập khẩu Numpy x = numpy.random.uniform (0,0, 5.0, 250) in (x) Hãy tự mình thử » Bắt đầu từ đây? Bài học này là một phần của hướng dẫn đầy đủ trong việc sử dụng Python để phân tích dữ liệu. Kiểm tra sự khởi đầu. Mục tiêu của bài học nàyTrong bài học này, bạn sẽ học cách:
Phân phối trong Python là gì? Phân phối bình thường Python là một hàm phân phối các biến ngẫu nhiên trong một biểu đồ được định hình như một chuông đối xứng. Nó làm như vậy bằng cách sắp xếp phân phối xác suất cho mỗi giá trị.Phân phối dữ liệu là gì? Throughout this tutorial, you can use Mode for free to practice writing and running Python code. Phân phối dữ liệu là một hàm chỉ định tất cả các giá trị có thể có cho một biến và cũng định lượng tần số tương đối (xác suất chúng thường xảy ra). Phân phối được coi là bất kỳ dân số nào có sự phân tán dữ liệu.
Bắt đầu từ đây? Bài học này là một phần của hướng dẫn đầy đủ trong việc sử dụng Python để phân tích dữ liệu. Kiểm tra sự khởi đầu. Mục tiêu của bài học này Trong bài học này, bạn sẽ học cách:Sử dụng dữ liệu chuyến bay, bạn sẽ học cách so sánh tốt hơn các xu hướng giữa các hãng hàng không, điều chỉnh phân tích của bạn dựa trên số lượng chuyến bay của hãng hàng không bay. Cuối cùng, bạn sẽ biết những hãng hàng không và sân bay nào ít nhiều đáng tin cậy và thậm chí có thể đến Lễ Tạ ơn đúng giờ trong năm nay! Sau khi làm theo các bước trên, hãy vào sổ ghi chép của bạn và nhập Numpy và Pandas, sau đó gán DataFrame của bạn cho biến 7 để dễ dàng theo dõi:Đầu vào
Đầu vào
Đầu vào
Đầu ra
Nan2015-01-03 2015-01-04 2015-01-05 2015-01-06 Đầu vào Phân phối Bay có thể là một nỗ lực lâu dài và bực bội ở Hoa Kỳ, đặc biệt là vào các ngày lễ và mùa bão khi các chuyến bay bị trì hoãn hàng giờ, đôi khi nhiều ngày. Là người tiêu dùng, chúng ta thường nhận thức được những xu hướng đó, nhưng những xu hướng chậm trễ hàng ngày? Những hãng hàng không nào đang làm tốt hơn trong việc đưa bạn đến đó đúng giờ và sân bay nào là tồi tệ nhất để bay ra? Đầu vào
Đầu ra
Một trong những cách tốt nhất để trả lời các câu hỏi như thế này là xem xét các phân phối của các biến có liên quan. Bạn có thể nghĩ về việc phân phối bộ dữ liệu hoặc biến dưới dạng danh sách các giá trị có thể và một số chỉ định về tần suất mỗi giá trị xảy ra. Để được bồi dưỡng nhanh về phân phối, hãy xem bài học này. Trước khi bạn nhìn vào các phân phối sự chậm trễ trên các hãng hàng không, hãy bắt đầu bằng cách khám phá những hãng hàng không nào có sự chậm trễ nhất.: A great analyst will always be skeptical and curious. When you reach a point in your analysis where you might have an answer, go a little further. Consider what might be affecting your results and what might support a counterargument. The best analysis will be presented as a very refined version of the broader investigation. Always be curious! Đầu tiên, xây dựng chuỗi cho biết liệu các chuyến bay có bị trì hoãn hay không, giống như bạn đã làm trong bài học trước:
Bây giờ đếm số lượng chuyến bay bị trì hoãn cho mỗi hãng hàng không. Vì bạn chỉ sau một giá trị cho mỗi hãng hàng không, bạn không phải sử dụng
delayed_flights = data[data['delayed'] == True] #filter to only rows where delayer == True
delayed_flights['unique_carrier'].value_counts() #count the number of rows for each carrier
delayed_flights = data[data['delayed'] == True] #filter to only rows where delayer == True
delayed_flights['unique_carrier'].value_counts() #count the number of rows for each carrier
WN 21150
EV 11371
OO 10804
AA 9841
DL 9803
UA 8624
MQ 8060
US 6353
B6 4401
NK 2133
AS 2104
F9 1848
HA 1354
VX 781
Name: unique_carrier, dtype: int64
WN 21150
EV 11371
OO 10804
AA 9841
DL 9803
UA 8624
MQ 8060
US 6353
B6 4401
NK 2133
AS 2104
F9 1848
HA 1354
VX 781
Name: unique_carrier, dtype: int64
|
ABC phân tích: Luôn tò mò: Một nhà phân tích tuyệt vời sẽ luôn hoài nghi và tò mò. Khi bạn đạt đến một điểm trong phân tích của bạn, nơi bạn có thể có câu trả lời, hãy đi xa hơn một chút. Hãy xem xét những gì có thể ảnh hưởng đến kết quả của bạn và những gì có thể hỗ trợ một phản biện. Phân tích tốt nhất sẽ được trình bày dưới dạng phiên bản rất tinh tế của cuộc điều tra rộng hơn. Luôn luôn tò mò! | Tỷ lệ các chuyến bay bị trì hoãn | Để tính tỷ lệ các chuyến bay bị trì hoãn, hãy hoàn thành 4 bước sau: |
---|---|---|
unique_carrier | ||
1. Nhóm theo nhà cung cấp và bị trì hoãn | 8912 | 9841 |
Các chuyến bay nhóm bởi 2 và 3, nhận số lượng với 9 (như bạn đã làm trong bài học trước, sử dụng 0 để trả về DataFrame: | 3527 | 2104 |
B6 | 4832 | 4401 |
chậm trễ | 17719 | 9803 |
Sai | 10596 | 11371 |
F9 | 1103 | 1848 |
ĐÚNG VẬY | 1351 | 1354 |
Aa | 4692 | 8060 |
BẰNG | 1550 | 2133 |
DL | 9977 | 10804 |
Ev | 7885 | 8624 |
Ha | 7850 | 6353 |
MQ | 1254 | 781 |
NK | 21789 | 21150 |
Oo
Đầu vào
delayed_by_carrier = data.groupby(['unique_carrier','delayed']).size().unstack().reset_index()
delayed_by_carrier[:5]
Đầu ra
ABC phân tích: Luôn tò mò: Một nhà phân tích tuyệt vời sẽ luôn hoài nghi và tò mò. Khi bạn đạt đến một điểm trong phân tích của bạn, nơi bạn có thể có câu trả lời, hãy đi xa hơn một chút. Hãy xem xét những gì có thể ảnh hưởng đến kết quả của bạn và những gì có thể hỗ trợ một phản biện. Phân tích tốt nhất sẽ được trình bày dưới dạng phiên bản rất tinh tế của cuộc điều tra rộng hơn. Luôn luôn tò mò! | unique_carrier | Tỷ lệ các chuyến bay bị trì hoãn | Để tính tỷ lệ các chuyến bay bị trì hoãn, hãy hoàn thành 4 bước sau: |
---|---|---|---|
0 | Aa | 8912 | 9841 |
1 | JFK | 3527 | 2104 |
2 | Lỏng lẻo | 4832 | 4401 |
3 | Nan | 17719 | 9803 |
4 | 2015-01-03 | 10596 | 11371 |
2015-01-04
2015-01-05
Đầu vào
delayed_by_carrier['flights_count'] = (delayed_by_carrier[False] + delayed_by_carrier[True])
delayed_by_carrier[:5]
Đầu ra
ABC phân tích: Luôn tò mò: Một nhà phân tích tuyệt vời sẽ luôn hoài nghi và tò mò. Khi bạn đạt đến một điểm trong phân tích của bạn, nơi bạn có thể có câu trả lời, hãy đi xa hơn một chút. Hãy xem xét những gì có thể ảnh hưởng đến kết quả của bạn và những gì có thể hỗ trợ một phản biện. Phân tích tốt nhất sẽ được trình bày dưới dạng phiên bản rất tinh tế của cuộc điều tra rộng hơn. Luôn luôn tò mò! | unique_carrier | Tỷ lệ các chuyến bay bị trì hoãn | Để tính tỷ lệ các chuyến bay bị trì hoãn, hãy hoàn thành 4 bước sau: | flights_count |
---|---|---|---|---|
0 | Aa | 8912 | 9841 | 18753 |
1 | JFK | 3527 | 2104 | 5631 |
2 | Lỏng lẻo | 4832 | 4401 | 9233 |
3 | Nan | 17719 | 9803 | 27522 |
4 | 2015-01-03 | 10596 | 11371 | 21967 |
2015-01-04
2015-01-05
Đầu vào
delayed_by_carrier['proportion_delayed'] = delayed_by_carrier[True] / delayed_by_carrier['flights_count']
delayed_by_carrier[:4]
Đầu ra
ABC phân tích: Luôn tò mò: Một nhà phân tích tuyệt vời sẽ luôn hoài nghi và tò mò. Khi bạn đạt đến một điểm trong phân tích của bạn, nơi bạn có thể có câu trả lời, hãy đi xa hơn một chút. Hãy xem xét những gì có thể ảnh hưởng đến kết quả của bạn và những gì có thể hỗ trợ một phản biện. Phân tích tốt nhất sẽ được trình bày dưới dạng phiên bản rất tinh tế của cuộc điều tra rộng hơn. Luôn luôn tò mò! | unique_carrier | Tỷ lệ các chuyến bay bị trì hoãn | Để tính tỷ lệ các chuyến bay bị trì hoãn, hãy hoàn thành 4 bước sau: | flights_count | proportion_delayed |
---|---|---|---|---|---|
0 | Aa | 8912 | 9841 | 18753 | 0.524769 |
1 | JFK | 3527 | 2104 | 5631 | 0.373646 |
2 | Lỏng lẻo | 4832 | 4401 | 9233 | 0.476660 |
3 | Nan | 17719 | 9803 | 27522 | 0.356188 |
2015-01-03
2015-01-04
Đầu vào
data = datasets[0] # assign SQL query results to the data variable
data = data.fillna(np.nan)
02015-01-05
ABC phân tích: Luôn tò mò: Một nhà phân tích tuyệt vời sẽ luôn hoài nghi và tò mò. Khi bạn đạt đến một điểm trong phân tích của bạn, nơi bạn có thể có câu trả lời, hãy đi xa hơn một chút. Hãy xem xét những gì có thể ảnh hưởng đến kết quả của bạn và những gì có thể hỗ trợ một phản biện. Phân tích tốt nhất sẽ được trình bày dưới dạng phiên bản rất tinh tế của cuộc điều tra rộng hơn. Luôn luôn tò mò! | unique_carrier | Tỷ lệ các chuyến bay bị trì hoãn | Để tính tỷ lệ các chuyến bay bị trì hoãn, hãy hoàn thành 4 bước sau: | flights_count | proportion_delayed |
---|---|---|---|---|---|
7 | 1. Nhóm theo nhà cung cấp và bị trì hoãn | 4692 | 8060 | 12752 | 0.632058 |
5 | Các chuyến bay nhóm bởi 2 và 3, nhận số lượng với 9 (như bạn đã làm trong bài học trước, sử dụng 0 để trả về DataFrame: | 1103 | 1848 | 2951 | 0.626228 |
8 | chậm trễ | 1550 | 2133 | 3683 | 0.579147 |
0 | Aa | 8912 | 9841 | 18753 | 0.524769 |
10 | Sai | 7885 | 8624 | 16509 | 0.522382 |
9 | ĐÚNG VẬY | 9977 | 10804 | 20781 | 0.519898 |
4 | 2015-01-03 | 10596 | 11371 | 21967 | 0.517640 |
6 | 2015-01-04 | 1351 | 1354 | 2705 | 0.500555 |
13 | Wn | 21789 | 21150 | 42939 | 0.492559 |
2 | B6 | 4832 | 4401 | 9233 | 0.476660 |
11 | CHÚNG TA | 7850 | 6353 | 14203 | 0.447300 |
12 | VX | 1254 | 781 | 2035 | 0.383784 |
1 | BẰNG | 3527 | 2104 | 5631 | 0.373646 |
3 | DL | 17719 | 9803 | 27522 | 0.356188 |
Điều này vẽ ra một bức tranh rất khác - Tây Nam nằm giữa gói khi nói đến tỷ lệ phần trăm của các chuyến bay bị trì hoãn.
Nhưng những gì về thời gian hành khách bị trì hoãn trên mỗi hãng hàng không? Điều hợp lý là tỷ lệ chậm trễ chuyến bay có thể thấp hơn đối với một số hãng hàng không, nhưng chiều dài của sự chậm trễ đó có thể dài hơn nhiều. Hành khách quan tâm nhiều hơn về độ trễ chuyến bay dài hơn so với những người ngắn hơn và họ có thể chọn một hãng hàng không khác với một kỷ lục về độ trễ dài. Đối với hành khách, những hãng hàng không có vẻ đáng tin cậy hơn? Hoặc trong các thuật ngữ đo lường hơn, trung bình có bao nhiêu phút các chuyến bay, đối với mỗi hãng hàng không?How many minutes are flights delayed on average, for each airline?
Bần tiện
Giá trị trung bình, hoặc trung bình, cho bạn một ý tưởng chung về việc các chuyến bay bị trì hoãn bao nhiêu phút cho mỗi hãng hàng không. .Pivot_Table () tính toán giá trị trung bình của các giá trị tổng hợp theo mặc định. Bạn có thể xoay trên cột
WN 21150
EV 11371
OO 10804
AA 9841
DL 9803
UA 8624
MQ 8060
US 6353
B6 4401
NK 2133
AS 2104
F9 1848
HA 1354
VX 781
Name: unique_carrier, dtype: int64
2 để xem thời gian trễ trung bình được tổng hợp bởi hãng hàng không:mean, or the average, gives you a general idea of how many minutes flights were delayed for each
airline. .pivot_table() calculates the mean of the aggregated values by default. You can pivot on the column
WN 21150
EV 11371
OO 10804
AA 9841
DL 9803
UA 8624
MQ 8060
US 6353
B6 4401
NK 2133
AS 2104
F9 1848
HA 1354
VX 781
Name: unique_carrier, dtype: int64
2 to see the mean delay time aggregated by airline:Đầu vào
data = datasets[0] # assign SQL query results to the data variable
data = data.fillna(np.nan)
1Đầu ra
data = datasets[0] # assign SQL query results to the data variable
data = data.fillna(np.nan)
2Lưu ý rằng vì
WN 21150
EV 11371
OO 10804
AA 9841
DL 9803
UA 8624
MQ 8060
US 6353
B6 4401
NK 2133
AS 2104
F9 1848
HA 1354
VX 781
Name: unique_carrier, dtype: int64
8 đã tính
WN 21150
EV 11371
OO 10804
AA 9841
DL 9803
UA 8624
MQ 8060
US 6353
B6 4401
NK 2133
AS 2104
F9 1848
HA 1354
VX 781
Name: unique_carrier, dtype: int64
9 theo mặc định, nên những điều trên có hiệu quả giống như khi bạn vượt qua rõ ràng đối số như thế này (và nó tạo ra kết quả chính xác tương tự):Đầu vào
Đầu ra
Đầu ra
data = datasets[0] # assign SQL query results to the data variable
data = data.fillna(np.nan)
2Lưu ý rằng vì WN 21150 EV 11371 OO 10804 AA 9841 DL 9803 UA 8624 MQ 8060 US 6353 B6 4401 NK 2133 AS 2104 F9 1848 HA 1354 VX 781 Name: unique_carrier, dtype: int64 8 đã tính WN 21150 EV 11371 OO 10804 AA 9841 DL 9803 UA 8624 MQ 8060 US 6353 B6 4401 NK 2133 AS 2104 F9 1848 HA 1354 VX 781 Name: unique_carrier, dtype: int64 9 theo mặc định, nên những điều trên có hiệu quả giống như khi bạn vượt qua rõ ràng đối số như thế này (và nó tạo ra kết quả chính xác tương tự):
data = datasets[0] # assign SQL query results to the data variable
data = data.fillna(np.nan)
3Thống kê cơ bản với
data.groupby(['unique_carrier','delayed']).size().unstack()
0Đầu vào
data = datasets[0] # assign SQL query results to the data variable
data = data.fillna(np.nan)
5Đầu ra
data = datasets[0] # assign SQL query results to the data variable
data = data.fillna(np.nan)
6Lưu ý rằng vì
WN 21150
EV 11371
OO 10804
AA 9841
DL 9803
UA 8624
MQ 8060
US 6353
B6 4401
NK 2133
AS 2104
F9 1848
HA 1354
VX 781
Name: unique_carrier, dtype: int64
8 đã tính
WN 21150
EV 11371
OO 10804
AA 9841
DL 9803
UA 8624
MQ 8060
US 6353
B6 4401
NK 2133
AS 2104
F9 1848
HA 1354
VX 781
Name: unique_carrier, dtype: int64
9 theo mặc định, nên những điều trên có hiệu quả giống như khi bạn vượt qua rõ ràng đối số như thế này (và nó tạo ra kết quả chính xác tương tự):
3data = datasets[0] # assign SQL query results to the data variable data = data.fillna(np.nan)
- Thống kê cơ bản với
0data.groupby(['unique_carrier','delayed']).size().unstack()
0 là một chức năng tiện dụng khi bạn làm việc với các cột số. Bạn có thể sử dụngdata.groupby(['unique_carrier','delayed']).size().unstack()
0 để xem một số số liệu thống kê cơ bản về cột, chẳng hạn như giá trị trung bình, tối thiểu, tối đa và độ lệch chuẩn. Điều này có thể cung cấp cho bạn một cái nhìn tổng quan nhanh chóng về hình dạng của dữ liệu.data.groupby(['unique_carrier','delayed']).size().unstack()
Trước khi sử dụng
data.groupby(['unique_carrier','delayed']).size().unstack()
3, chọn sê -ri
data.groupby(['unique_carrier','delayed']).size().unstack()
4 cho tất cả các chuyến bay Tây Nam:Đầu ra
data = datasets[0] # assign SQL query results to the data variable
data = data.fillna(np.nan)
7Lưu ý rằng vì
WN 21150
EV 11371
OO 10804
AA 9841
DL 9803
UA 8624
MQ 8060
US 6353
B6 4401
NK 2133
AS 2104
F9 1848
HA 1354
VX 781
Name: unique_carrier, dtype: int64
8 đã tính
WN 21150
EV 11371
OO 10804
AA 9841
DL 9803
UA 8624
MQ 8060
US 6353
B6 4401
NK 2133
AS 2104
F9 1848
HA 1354
VX 781
Name: unique_carrier, dtype: int64
9 theo mặc định, nên những điều trên có hiệu quả giống như khi bạn vượt qua rõ ràng đối số như thế này (và nó tạo ra kết quả chính xác tương tự):
data = datasets[0] # assign SQL query results to the data variable
data = data.fillna(np.nan)
3- Thống kê cơ bản với
0data.groupby(['unique_carrier','delayed']).size().unstack()
0 là một chức năng tiện dụng khi bạn làm việc với các cột số. Bạn có thể sử dụngdata.groupby(['unique_carrier','delayed']).size().unstack()
0 để xem một số số liệu thống kê cơ bản về cột, chẳng hạn như giá trị trung bình, tối thiểu, tối đa và độ lệch chuẩn. Điều này có thể cung cấp cho bạn một cái nhìn tổng quan nhanh chóng về hình dạng của dữ liệu.data.groupby(['unique_carrier','delayed']).size().unstack()
- Trước khi sử dụng
3, chọn sê -ridata.groupby(['unique_carrier','delayed']).size().unstack()
4 cho tất cả các chuyến bay Tây Nam:data.groupby(['unique_carrier','delayed']).size().unstack()
- Trong trường hợp khó hiểu, đây là những gì vừa xảy ra, đã đánh giá từ trong ra ngoài, sau đó từ trái sang phải:
5 tạo ra một chỉ số boolean trả vềdata.groupby(['unique_carrier','delayed']).size().unstack()
6 cho các hàng đại diện cho các chuyến bay Tây Namdata.groupby(['unique_carrier','delayed']).size().unstack()
- Gói đó trong
7 áp dụng chỉ số Boolean cho DataFramedata.groupby(['unique_carrier','delayed']).size().unstack()
7.delayed_flights = data[data['delayed'] == True] #filter to only rows where delayer == True delayed_flights['unique_carrier'].value_counts() #count the number of rows for each carrier
9 giảm các cột thành cột ['ARR_DELAY'] (và chỉ mục).data.groupby(['unique_carrier','delayed']).size().unstack()
- Bây giờ bạn có thể chạy
0 trên đối tượng mới này mà bạn đã tạo để có được số liệu thống kê cơ bản:data.groupby(['unique_carrier','delayed']).size().unstack()
Đây là một tính năng thực sự khiến Python khác biệt với SQL hoặc Excel. Sẽ mất rất nhiều công việc để có được thông tin này trong một trong những công cụ đó, nhưng ở đây cũng dễ dàng như thêm phương thức data.groupby(['unique_carrier','delayed']).size().unstack() 0.
Dưới đây là sự cố nhanh chóng của những điều trên vì nó liên quan đến bộ dữ liệu cụ thể này:
delayed_by_carrier = data.groupby(['unique_carrier','delayed']).size().unstack().reset_index()
delayed_by_carrier[:5]
2: Có 42.020 hàng trong bộ dữ liệu, được lọc chỉ hiển thị Tây Nam (WN).WN 21150 EV 11371 OO 10804 AA 9841 DL 9803 UA 8624 MQ 8060 US 6353 B6 4401 NK 2133 AS 2104 F9 1848 HA 1354 VX 781 Name: unique_carrier, dtype: int64 9: Độ trễ trung bình.
delayed_by_carrier = data.groupby(['unique_carrier','delayed']).size().unstack().reset_index()
delayed_by_carrier[:5]
4: Độ lệch chuẩn. Thêm về điều này dưới đây.
delayed_by_carrier = data.groupby(['unique_carrier','delayed']).size().unstack().reset_index()
delayed_by_carrier[:5]
5: Độ trễ ngắn nhất trong tập dữ liệu. Trong trường hợp này, chuyến bay rất sớm.histogram. Histograms allow you to bucket the values into bins, or fixed value ranges, and count how many values fall in that bin.
delayed_by_carrier = data.groupby(['unique_carrier','delayed']).size().unstack().reset_index()
delayed_by_carrier[:5]
6: Phần trăm thứ 25. 25% độ trễ thấp hơn
delayed_by_carrier = data.groupby(['unique_carrier','delayed']).size().unstack().reset_index()
delayed_by_carrier[:5]
7.
data = datasets[0] # assign SQL query results to the data variable
data = data.fillna(np.nan)
8
delayed_by_carrier = data.groupby(['unique_carrier','delayed']).size().unstack().reset_index()
delayed_by_carrier[:5]
8: Tỷ lệ phần trăm thứ 50 hoặc
delayed_by_carrier = data.groupby(['unique_carrier','delayed']).size().unstack().reset_index()
delayed_by_carrier[:5]
9. 50% độ trễ thấp hơn
delayed_by_carrier['flights_count'] = (delayed_by_carrier[False] + delayed_by_carrier[True])
delayed_by_carrier[:5]
0.
delayed_by_carrier['flights_count'] = (delayed_by_carrier[False] + delayed_by_carrier[True])
delayed_by_carrier[:5]
1: Tỷ lệ phần trăm thứ 75. 75% độ trễ thấp hơn
delayed_by_carrier['flights_count'] = (delayed_by_carrier[False] + delayed_by_carrier[True])
delayed_by_carrier[:5]
2.
data = datasets[0] # assign SQL query results to the data variable
data = data.fillna(np.nan)
9
delayed_by_carrier['flights_count'] = (delayed_by_carrier[False] + delayed_by_carrier[True])
delayed_by_carrier[:5]
3: Độ trễ lâu nhất trong bộ dữ liệu:
delayed_by_carrier['flights_count'] = (delayed_by_carrier[False] + delayed_by_carrier[True])
delayed_by_carrier[:5]
4.
data.head() # our flight data, including delay minute counts by type, and total delay upon arrival
0Thực hành vấn đề
Đầu vào
data.head() # our flight data, including delay minute counts by type, and total delay upon arrival
1Đầu ra
data.head() # our flight data, including delay minute counts by type, and total delay upon arrival
2Lưu ý rằng vì
WN 21150
EV 11371
OO 10804
AA 9841
DL 9803
UA 8624
MQ 8060
US 6353
B6 4401
NK 2133
AS 2104
F9 1848
HA 1354
VX 781
Name: unique_carrier, dtype: int64
8 đã tính
WN 21150
EV 11371
OO 10804
AA 9841
DL 9803
UA 8624
MQ 8060
US 6353
B6 4401
NK 2133
AS 2104
F9 1848
HA 1354
VX 781
Name: unique_carrier, dtype: int64
9 theo mặc định, nên những điều trên có hiệu quả giống như khi bạn vượt qua rõ ràng đối số như thế này (và nó tạo ra kết quả chính xác tương tự):histograms are not bar charts. In a bar chart, the height of the bar represents a numerical value (such as
number of delayed flights), but each bar itself represents a category—something that cannot be counted, averaged, or summed (like airline).
data = datasets[0] # assign SQL query results to the data variable
data = data.fillna(np.nan)
3Một cách để nhanh chóng cho biết sự khác biệt là biểu đồ không có khoảng trống giữa các thanh. Bởi vì chúng đại diện cho các giá trị trên một phổ liên tục, một khoảng trống giữa các thanh sẽ có một ý nghĩa cụ thể: nó sẽ chỉ ra một thùng trống. Biểu đồ thanh có thể có khoảng trống giữa các thanh. Bởi vì chúng hiển thị các danh mục, thứ tự và khoảng cách không quan trọng.
Kiểm tra bài đăng trên blog này bằng cách chảy dữ liệu để biết giải thích tuyệt vời về biểu đồ.
Numpy delayed_by_carrier['flights_count'] = (delayed_by_carrier[False] + delayed_by_carrier[True]) delayed_by_carrier[:5] 6
Giả sử bạn quan tâm đến việc phân tích độ dài độ trễ và bạn muốn đặt những độ dài này vào các thùng đại diện cho mỗi khoảng thời gian 10 phút. Bạn có thể sử dụng phương thức Numpy
delayed_by_carrier['flights_count'] = (delayed_by_carrier[False] + delayed_by_carrier[True])
delayed_by_carrier[:5]
6 để tạo danh sách các số xác định các thùng đó. Các thùng của khoảng thời gian mười phút sẽ từ sớm từ 50 phút (-50) đến 200 phút (200). Thùng đầu tiên sẽ tổ chức số lượng các chuyến bay đến sớm từ 50 đến 40 phút, sau đó 40 đến 30 phút, v.v.Đầu vào
data.head() # our flight data, including delay minute counts by type, and total delay upon arrival
3Đầu ra
data.head() # our flight data, including delay minute counts by type, and total delay upon arrival
4Hãy vẽ sơ đồ phân phối độ trễ chuyến bay Tây Nam dưới dạng biểu đồ bằng cách sử dụng biến bin_values được tạo ở trên:
Đầu vào
data.head() # our flight data, including delay minute counts by type, and total delay upon arrival
5Đầu ra
data.head() # our flight data, including delay minute counts by type, and total delay upon arrival
6Hãy vẽ sơ đồ phân phối độ trễ chuyến bay Tây Nam dưới dạng biểu đồ bằng cách sử dụng biến bin_values được tạo ở trên:
Tuyệt quá! Bạn có thể thấy rằng phần lớn các chuyến bay Tây Nam không trễ quá 30 phút. Mặc dù hãng hàng không có nhiều chuyến bay, nhưng phần lớn trong số họ không đủ muộn để khiến bạn hối hận khi đi nghỉ.
Thực hành vấn đề
Lô đất của Virgin America trì hoãn trong khoảng thời gian dài năm phút từ -50 phút đến 200 phút.
Tuyệt quá! Bạn có thể thấy rằng phần lớn các chuyến bay Tây Nam không trễ quá 30 phút. Mặc dù hãng hàng không có nhiều chuyến bay, nhưng phần lớn trong số họ không đủ muộn để khiến bạn hối hận khi đi nghỉ.
Thực hành vấn đềWhich flights were delayed between 20-25 minutes? Was there a given reason? What hypotheses might you make about why there are more flights in that bin as opposed to the 15-20 minute bucket? Select the flights using boolean indexing, then count the origin airports for those flights.
Lô đất của Virgin America trì hoãn trong khoảng thời gian dài năm phút từ -50 phút đến 200 phút.
Xem giải pháp
Hãy đào sâu vào các chuyến bay Virgin America bị trì hoãn bất ngờ. Những chuyến bay nào bị trì hoãn trong khoảng 20-25 phút? Có một lý do nhất định? Bạn có thể đưa ra những giả thuyết nào về lý do tại sao có nhiều chuyến bay trong thùng đó trái ngược với xô 15-20 phút? Chọn các chuyến bay bằng cách sử dụng lập chỉ mục Boolean, sau đó đếm các sân bay gốc cho các chuyến bay đó.
So sánh phân phối với biểu đồ
Đầu vào
data.head() # our flight data, including delay minute counts by type, and total delay upon arrival
7
Đầu ra
data.head() # our flight data, including delay minute counts by type, and total delay upon arrival
8Hãy vẽ sơ đồ phân phối độ trễ chuyến bay Tây Nam dưới dạng biểu đồ bằng cách sử dụng biến bin_values được tạo ở trên:
Đầu vào
data.head() # our flight data, including delay minute counts by type, and total delay upon arrival
9Đầu ra
data['delayed'] = data['arr_delay'].apply(lambda x: x > 0) #from previous lesson
0Hãy vẽ sơ đồ phân phối độ trễ chuyến bay Tây Nam dưới dạng biểu đồ bằng cách sử dụng biến bin_values được tạo ở trên:
Tuyệt quá! Bạn có thể thấy rằng phần lớn các chuyến bay Tây Nam không trễ quá 30 phút. Mặc dù hãng hàng không có nhiều chuyến bay, nhưng phần lớn trong số họ không đủ muộn để khiến bạn hối hận khi đi nghỉ.
Thực hành vấn đềstandard deviation, which describes how flight delays are dispersed. In comparing the histograms, you can see that US Airways' delays are most concentrated between -20 to 20 minutes, while Envoy Air's flight delays are more distributed from 0 to 200 minutes. You can say that Envoy Air's delays are more dispersed than US Airways' delays, meaning that for a given flight on either airline, you would be less certain about the length of the delay for the Envoy flight.
Lô đất của Virgin America trì hoãn trong khoảng thời gian dài năm phút từ -50 phút đến 200 phút.normal distribution, or a common expected shape of distribution among various types of data. The value for standard deviation defines a range above and below the mean for which a certain percentage of the data lie. You can see in this visualization that, for a normal distribution:
- Xem giải pháphigher.
- Hãy đào sâu vào các chuyến bay Virgin America bị trì hoãn bất ngờ. Những chuyến bay nào bị trì hoãn trong khoảng 20-25 phút? Có một lý do nhất định? Bạn có thể đưa ra những giả thuyết nào về lý do tại sao có nhiều chuyến bay trong thùng đó trái ngược với xô 15-20 phút? Chọn các chuyến bay bằng cách sử dụng lập chỉ mục Boolean, sau đó đếm các sân bay gốc cho các chuyến bay đó.lower.
So sánh phân phối với biểu đồ
Nhìn thấy một phân phối là hữu ích để cung cấp cho chúng ta một hình dạng của dữ liệu, nhưng làm thế nào về hai?So sánh phân phối của hai hãng hàng không với số lượng tổng số chuyến bay, US Airways và Envoy Air:
Đầu vào
data['delayed'] = data['arr_delay'].apply(lambda x: x > 0) #from previous lesson
1
Đầu ra
data['delayed'] = data['arr_delay'].apply(lambda x: x > 0) #from previous lesson
2Hãy vẽ sơ đồ phân phối độ trễ chuyến bay Tây Nam dưới dạng biểu đồ bằng cách sử dụng biến bin_values được tạo ở trên:
Tuyệt quá! Bạn có thể thấy rằng phần lớn các chuyến bay Tây Nam không trễ quá 30 phút. Mặc dù hãng hàng không có nhiều chuyến bay, nhưng phần lớn trong số họ không đủ muộn để khiến bạn hối hận khi đi nghỉ.
Thực hành vấn đềdispersion than Envoy Air.
Lô đất của Virgin America trì hoãn trong khoảng thời gian dài năm phút từ -50 phút đến 200 phút.
Xem giải pháp
Để làm cho mọi thứ dễ dàng hơn, bạn có thể nhìn vào 20 sân bay khối lượng cao nhất theo nguồn gốc:
Đầu vào
data['delayed'] = data['arr_delay'].apply(lambda x: x > 0) #from previous lesson
3Đầu ra
data['delayed'] = data['arr_delay'].apply(lambda x: x > 0) #from previous lesson
4Đầu vào
data['delayed'] = data['arr_delay'].apply(lambda x: x > 0) #from previous lesson
5Đầu ra
data['delayed'] = data['arr_delay'].apply(lambda x: x > 0) #from previous lesson
6Lọc danh sách các giá trị với delayed_by_carrier['flights_count'] = (delayed_by_carrier[False] + delayed_by_carrier[True]) delayed_by_carrier[:5] 9
Để tạo một chỉ mục boolean nơi bạn đang tìm kiếm các giá trị phù hợp với bất cứ thứ gì trong danh sách, bạn phải sử dụng .isin () với danh sách các trận đấu mong muốn.
Bạn có thể tạo một bộ lọc chỉ số Boolean cho các hồ sơ có nguồn gốc ('nguồn gốc') trong 20 sân bay khối lượng cao nhất.
Đầu vào
data['delayed'] = data['arr_delay'].apply(lambda x: x > 0) #from previous lesson
7Đầu ra
flight_date | unique_carrier | flight_num | Lọc danh sách các giá trị với 9 | Để tạo một chỉ mục boolean nơi bạn đang tìm kiếm các giá trị phù hợp với bất cứ thứ gì trong danh sách, bạn phải sử dụng .isin () với danh sách các trận đấu mong muốn. | arr_delay | Bạn có thể tạo một bộ lọc chỉ số Boolean cho các hồ sơ có nguồn gốc ('nguồn gốc') trong 20 sân bay khối lượng cao nhất. | nguồn gốc | carrier_delay | weather_delay | late_aircraft_delay | nas_delay | security_delay | actual_elapsed_time | Dest | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | bị hủy bỏ | khoảng cách | 1 | chậm trễ | 2015-01-02 | -19.0 | 0.0 | 2475.0 | Aa | Aa | Aa | Aa | Aa | 381.0 | JFK |
1 | Lỏng lẻo | khoảng cách | 1 | chậm trễ | 2015-01-02 | -39.0 | 0.0 | 2475.0 | Aa | Aa | Aa | Aa | Aa | 358.0 | JFK |
2 | Lỏng lẻo | khoảng cách | 1 | chậm trễ | 2015-01-02 | -12.0 | 0.0 | 2475.0 | Aa | Aa | Aa | Aa | Aa | 385.0 | JFK |
3 | Lỏng lẻo | khoảng cách | 1 | chậm trễ | 2015-01-02 | -8.0 | 0.0 | 2475.0 | Aa | Aa | Aa | Aa | Aa | 389.0 | JFK |
4 | Lỏng lẻo | khoảng cách | 1 | chậm trễ | 2015-01-02 | 25.0 | 0.0 | 2475.0 | 0.0 | 0.0 | 0.0 | 25.0 | 0.0 | 424.0 | Aa |
JFK
data['delayed'] = data['arr_delay'].apply(lambda x: x > 0) #from previous lesson
8Lỏng lẻo
Nan
Sai
Đầu vào
data['delayed'] = data['arr_delay'].apply(lambda x: x > 0) #from previous lesson
9Đầu ra
Lọc danh sách các giá trị với 9 | Để tạo một chỉ mục boolean nơi bạn đang tìm kiếm các giá trị phù hợp với bất cứ thứ gì trong danh sách, bạn phải sử dụng .isin () với danh sách các trận đấu mong muốn. | Bạn có thể tạo một bộ lọc chỉ số Boolean cho các hồ sơ có nguồn gốc ('nguồn gốc') trong 20 sân bay khối lượng cao nhất. | nguồn gốc | Dest | bị hủy bỏ | khoảng cách | chậm trễ | 2015-01-02 | Aa | JFK | Lỏng lẻo | Nan | Sai | 2015-01-03 | 2015-01-04 | 2015-01-05 | 2015-01-06 | ĐÚNG VẬY | Để so sánh, việc sử dụng 9 trong Python trên tương đương với truy vấn SQL sau: | Ô hộp |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
flight_date | ||||||||||||||||||||
2015-01-02 | 3.327536 | 3.590580 | 0.509317 | 20.526899 | 36.049598 | -6.842809 | 8.316993 | -0.543307 | 12.156187 | 3.688742 | 13.709512 | 16.500000 | -2.947712 | 5.834734 | 1.193333 | 4.590062 | 16.547325 | 12.254717 | 8.371429 | 4.534161 |
2015-01-03 | 15.428112 | 30.471616 | 13.768340 | 51.186292 | 37.604138 | 22.738007 | 37.370229 | 15.666667 | 39.844037 | 31.882979 | 18.550685 | 26.117338 | 15.606426 | 17.511364 | 20.027586 | 37.995702 | 19.783843 | 13.771812 | 11.773364 | 13.465190 |
2015-01-04 | 21.423343 | 26.867857 | 23.325077 | 52.495238 | 38.360104 | 35.771626 | 53.617978 | 25.293651 | 20.464286 | 55.445578 | 19.564767 | 28.159016 | 32.450704 | 39.847025 | 19.461279 | 83.225619 | 20.180085 | 10.291262 | 19.251092 | 15.503125 |
2015-01-05 | 3.095000 | 11.208609 | 6.051672 | 29.899200 | 28.705263 | 24.696594 | 22.674051 | 13.711864 | 8.450505 | 19.554422 | 17.229381 | 15.788618 | 34.984177 | 14.929204 | 23.874564 | 63.916667 | 13.665217 | 5.418060 | 13.225806 | 2.003356 |
2015-01-06 | 6.361725 | 43.310580 | 13.294964 | 15.344029 | 11.534626 | 35.078616 | 43.104530 | 23.425926 | 3.622642 | 43.359073 | 13.330579 | 7.234004 | 61.165049 | 29.996785 | 9.435088 | 42.356183 | 12.156658 | 4.372180 | 8.582716 | 0.581481 |
2015-01-07 | 0.944276 | 10.651316 | 4.869565 | 33.301095 | 10.428762 | 13.403727 | 22.030508 | 11.254464 | 10.490476 | 15.536680 | 7.498652 | 5.442446 | 46.063973 | 8.977918 | -1.666667 | 38.479361 | 7.348028 | 9.467925 | 5.289216 | 2.977941 |
2015-01-08 | 3.033099 | 6.807692 | 10.484568 | 14.569873 | 11.217450 | 20.593060 | 15.419463 | 2.558442 | 1.571121 | 2.749091 | 8.597911 | 6.171329 | 3.575221 | 9.152648 | 47.264605 | 96.695578 | 8.000000 | 8.738351 | 5.141487 | 12.619718 |
2015-01-09 | 1.833499 | 21.045603 | 5.742331 | 21.551237 | 8.591810 | 34.665653 | 22.632107 | 1.808696 | 7.611354 | 43.294964 | 4.487245 | 8.144112 | 42.325581 | 8.758410 | 6.834459 | 46.355837 | 2.160550 | 7.464029 | 9.425178 | 3.878893 |
2015-01-10 | -5.473046 | 3.763547 | -1.658915 | 2.822014 | 5.501582 | 2.584906 | 0.422680 | -5.172269 | 0.937888 | 1.259259 | 2.564706 | 2.709746 | -11.311475 | 0.273273 | 8.542857 | 16.635209 | 2.213483 | -2.761506 | 0.621622 | 2.718894 |
2015-01-11 | -2.118085 | -2.569767 | 5.789286 | 16.045977 | 19.767313 | 5.808725 | -1.670543 | -3.008734 | 17.064904 | -2.964158 | 40.793103 | 24.195531 | -7.576923 | -2.242991 | 2.264493 | 22.578704 | 11.557143 | 6.381132 | 27.650633 | 5.946043 |
2015-01-12 | 42.375375 | 8.254777 | 14.975524 | 22.791444 | 19.114820 | 24.692771 | 8.219780 | 8.960699 | 22.710526 | 4.297101 | 12.710526 | 10.982175 | 16.641509 | 21.563863 | 1.274510 | 31.676056 | 5.371230 | 7.318519 | 27.918719 | 7.051546 |
2015-01-13 | 2.812957 | -9.384106 | 0.086505 | 9.789279 | 7.248656 | -2.710692 | -2.901024 | -7.118721 | 1.415274 | -13.214559 | -2.937853 | -1.553506 | -0.883234 | -1.462295 | -5.660959 | 23.323259 | 2.083990 | 3.267176 | 11.153652 | 0.528090 |
2015-01-14 | -1.400000 | -3.091216 | -1.681250 | -0.638838 | 2.690160 | -1.903727 | -5.456446 | 3.360360 | -0.530120 | -14.911877 | -3.695418 | -2.958559 | 0.002994 | 1.885350 | -7.691030 | 2.735369 | -1.161593 | -1.134831 | 1.324455 | -5.717949 |
Bây giờ bạn có một khung dữ liệu của các chuyến bay có nguồn gốc từ các sân bay khối lượng lớn, bạn có thể hỏi: Sự chậm trễ chuyến bay dài nhất bắt nguồn từ đâu vào tháng 1 năm 2015?
Đầu vào
delayed_flights = data[data['delayed'] == True] #filter to only rows where delayer == True
delayed_flights['unique_carrier'].value_counts() #count the number of rows for each carrier
0Đầu ra
Lọc danh sách các giá trị với 9 | Để tạo một chỉ mục boolean nơi bạn đang tìm kiếm các giá trị phù hợp với bất cứ thứ gì trong danh sách, bạn phải sử dụng .isin () với danh sách các trận đấu mong muốn. | Bạn có thể tạo một bộ lọc chỉ số Boolean cho các hồ sơ có nguồn gốc ('nguồn gốc') trong 20 sân bay khối lượng cao nhất. | nguồn gốc | Dest | bị hủy bỏ | khoảng cách | chậm trễ | 2015-01-02 | Aa | JFK | Lỏng lẻo | Nan | Sai | 2015-01-03 | 2015-01-04 | 2015-01-05 | 2015-01-06 | ĐÚNG VẬY | Để so sánh, việc sử dụng 9 trong Python trên tương đương với truy vấn SQL sau: | Ô hộp |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Bây giờ bạn có một khung dữ liệu của các chuyến bay có nguồn gốc từ các sân bay khối lượng lớn, bạn có thể hỏi: Sự chậm trễ chuyến bay dài nhất bắt nguồn từ đâu vào tháng 1 năm 2015? | 13.000000 | 13.000000 | 13.000000 | 13.000000 | 13.000000 | 13.000000 | 13.000000 | 13.000000 | 13.000000 | 13.000000 | 13.000000 | 13.000000 | 13.000000 | 13.000000 | 13.000000 | 13.000000 | 13.000000 | 13.000000 | 13.000000 | 13.000000 |
bần tiện | 7.049522 | 11.609776 | 7.350537 | 22.283364 | 18.216483 | 16.044343 | 17.213870 | 6.938287 | 11.216083 | 14.613638 | 11.723369 | 11.302481 | 17.699715 | 11.925022 | 9.627240 | 39.274123 | 9.223535 | 6.526833 | 11.517644 | 5.083884 |
STD | 12.798122 | 15.004838 | 7.499172 | 16.171575 | 12.854437 | 15.286101 | 18.718574 | 10.452380 | 11.488504 | 22.619487 | 11.574100 | 10.193057 | 23.428830 | 12.647029 | 14.971524 | 28.195169 | 7.051518 | 4.795902 | 8.742399 | 5.910367 |
Tối thiểu | -5.473046 | -9.384106 | -1.681250 | -0.638838 | 2.690160 | -6.842809 | -5.456446 | -7.118721 | -0.530120 | -14.911877 | -3.695418 | -2.958559 | -11.311475 | -2.242991 | -7.691030 | 2.735369 | -1.161593 | -2.761506 | 0.621622 | -5.717949 |
25% | 0.944276 | 3.590580 | 0.509317 | 14.569873 | 8.591810 | 2.584906 | 0.422680 | -0.543307 | 1.571121 | 1.259259 | 4.487245 | 5.442446 | -0.883234 | 1.885350 | 1.193333 | 22.578704 | 2.213483 | 4.372180 | 5.289216 | 2.003356 |
50% | 3.033099 | 8.254777 | 5.789286 | 20.526899 | 11.534626 | 20.593060 | 15.419463 | 3.360360 | 8.450505 | 4.297101 | 12.710526 | 8.144112 | 15.606426 | 8.977918 | 6.834459 | 37.995702 | 8.000000 | 7.318519 | 9.425178 | 3.878893 |
75% | 6.361725 | 21.045603 | 13.294964 | 29.899200 | 28.705263 | 24.696594 | 22.674051 | 13.711864 | 17.064904 | 31.882979 | 17.229381 | 16.500000 | 34.984177 | 17.511364 | 19.461279 | 46.355837 | 13.665217 | 9.467925 | 13.225806 | 7.051546 |
Tối đa | 42.375375 | 43.310580 | 23.325077 | 52.495238 | 38.360104 | 35.771626 | 53.617978 | 25.293651 | 39.844037 | 55.445578 | 40.793103 | 28.159016 | 61.165049 | 39.847025 | 47.264605 | 96.695578 | 20.180085 | 13.771812 | 27.918719 | 15.503125 |
Thật khó để so sánh các sân bay chỉ bằng cách nhìn vào một bảng số lớn. Điều này sẽ dễ dàng hơn nếu bạn nhóm các hồ sơ cho mỗi sân bay và phủ chúng, như bạn đã làm với Envoy Air và US Airways:
Đầu vào
delayed_flights = data[data['delayed'] == True] #filter to only rows where delayer == True
delayed_flights['unique_carrier'].value_counts() #count the number of rows for each carrier
1Đầu ra
delayed_flights = data[data['delayed'] == True] #filter to only rows where delayer == True
delayed_flights['unique_carrier'].value_counts() #count the number of rows for each carrier
2Chà, điều đó cũng khó đọc. Phương pháp phân phối lớp phủ có giới hạn, ít nhất là khi bạn muốn so sánh nhiều bản phân phối cùng một lúc. May mắn thay, có một cách hình dung một chiều để hình dung hình dạng của các bản phân phối được gọi là một ô hộp.box plot.
Các ô hộp bao gồm các biện pháp phân tán quan trọng tương tự mà bạn nhận được khi chạy
data.groupby(['unique_carrier','delayed']).size().unstack()
0, cho phép nó được hiển thị theo một chiều và dễ dàng so sánh với các bản phân phối khác. Các thành phần của các ô hộp là: - Thiết kế bảng điều khiển thông tin, Stephen vàiHãy thử sử dụng các ô hộp để so sánh phân phối độ trễ hàng ngày tại mỗi sân bay:
Đầu vào
delayed_flights = data[data['delayed'] == True] #filter to only rows where delayer == True
delayed_flights['unique_carrier'].value_counts() #count the number of rows for each carrier
3Đầu ra
delayed_flights = data[data['delayed'] == True] #filter to only rows where delayer == True
delayed_flights['unique_carrier'].value_counts() #count the number of rows for each carrier
4Chà, điều đó cũng khó đọc. Phương pháp phân phối lớp phủ có giới hạn, ít nhất là khi bạn muốn so sánh nhiều bản phân phối cùng một lúc. May mắn thay, có một cách hình dung một chiều để hình dung hình dạng của các bản phân phối được gọi là một ô hộp.
Các ô hộp bao gồm các biện pháp phân tán quan trọng tương tự mà bạn nhận được khi chạy
data.groupby(['unique_carrier','delayed']).size().unstack()
0, cho phép nó được hiển thị theo một chiều và dễ dàng so sánh với các bản phân phối khác. Các thành phần của các ô hộp là:Which airports are the worst to fly out of?, you can now say that you will (almost certainly) be delayed if you are flying out of Chicago in January, based on 2015 data. If you can help it, avoid connecting flights in Chicago.- Thiết kế bảng điều khiển thông tin, Stephen vài
Hãy thử sử dụng các ô hộp để so sánh phân phối độ trễ hàng ngày tại mỗi sân bay:
Như bạn có thể thấy, việc so sánh nhiều bản phân phối với các ô hộp đơn giản hơn về mặt trực quan. Các sân bay như JFK có sự phân tán đáng kể sự chậm trễ, trong khi LGA được phân phối đều xung quanh sự chậm trễ trung bình thường xuyên nhất. Tuy nhiên, Ord gần gấp đôi thời gian, so với mọi sân bay khối lượng lớn khác. Mong đợi sự chậm trễ của tuyết ở Chicago vào tháng 1!
Dẫn đầu phân tích này, chúng tôi đặt ra một vài câu hỏi chính. Để trả lời cuối cùng, sân bay nào là tồi tệ nhất để bay ra ?, Bây giờ bạn có thể nói rằng bạn sẽ (gần như chắc chắn) bị trì hoãn nếu bạn bay ra khỏi Chicago vào tháng 1, dựa trên dữ liệu năm 2015. Nếu bạn có thể giúp nó, tránh kết nối các chuyến bay ở Chicago.
Thực hành vấn đề
Hình dung độ trễ đến trung bình theo ngày và nhà cung cấp bằng cách sử dụng các ô hộp.
- Xem giải pháp
- Tom tăt bai học
- Như bạn đã thấy trong bài học này, việc đặt dữ liệu ngược lại cho phép bạn hiểu rõ hơn về nó. Mặc dù nó rõ ràng rằng tất cả các hãng hàng không và sân bay đều bị chậm trễ, bạn có thể sử dụng số liệu thống kê để nhanh chóng rút ra những xu hướng và sự xuất hiện bất thường trên dữ liệu. Độ lệch của dữ liệu so với một xu hướng thường được tiết lộ rõ ràng trong trực quan hóa, cho phép bạn xác định trực quan các sự kiện bất thường và đào sâu hơn.
- Trong bài học này, bạn đã học được cách:
- Phân phối phân phối bộ dữ liệu