Bắt đầu từ đây? . Kiểm tra đầ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ẽ tìm hiểu 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 mà một hãng hàng không bay. Cuối cùng, bạn sẽ biết 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 kịp Lễ Tạ Ơn năm nay
Đang tải dữ liệu vào sổ ghi chép Chế độ Python
Chế độ là một nền tảng phân tích tập hợp trình soạn thảo SQL, sổ ghi chép Python và trình tạo trực quan hóa dữ liệu. Xuyên suốt hướng dẫn này, bạn có thể sử dụng Chế độ miễn phí để thực hành viết và chạy mã Python
Đối với bài học này, bạn sẽ sử dụng hồ sơ về các chuyến bay nội địa của Hoa Kỳ từ Bộ Giao thông Vận tải Hoa Kỳ. Để truy cập dữ liệu, bạn sẽ cần sử dụng một chút SQL. Đây là cách
- Đăng nhập vào Chế độ hoặc tạo tài khoản
- Điều hướng đến báo cáo này và nhấp vào Sao chép. Thao tác này sẽ đưa bạn đến Trình soạn thảo truy vấn SQL, với truy vấn và kết quả được điền trước
- Nhấp vào Python Notebook bên dưới Notebook trong bảng điều hướng bên trái. Điều này sẽ mở một sổ ghi chép mới, với kết quả của truy vấn được tải dưới dạng khung dữ liệu
- Ô nhập đầu tiên được tự động điền bằng
5. Chạy mã này để bạn có thể thấy năm hàng đầu tiên của tập dữ liệuWN 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
6 là một đối tượng danh sách. Được lồng trong danh sách này là một DataFrame chứa các kết quả được tạo bởi truy vấn SQL mà bạn đã viết. Để tìm hiểu thêm về cách truy cập truy vấn SQL trong Mode Python Notebooks, hãy đọc tài liệu nàyBây giờ bạn đã sẵn sàng để đi
Định hướng với dữ liệu
Bài học này sử dụng dữ liệu về sự chậm trễ chuyến bay của Hoa Kỳ. Đối với một từ điển dữ liệu với nhiều thông tin hơn, bấm vào đây
Sau khi làm theo các bước trên, hãy truy cập 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
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
7 để dễ dàng theo dõi
import pandas as pd
import numpy as np
data = datasets[0] # assign SQL query results to the data variable
data = data.fillna[np.nan]
data.head[] # our flight data, including delay minute counts by type, and total delay upon arrival
chuyến bay_dateunique_carrierflight_numorigindestarr_delaycancelled distancecarrier_delayweather_delaylate_aircraft_delaynas_delaysecurity_delayactual_elapsed_time02015-01-02AA1JFKLAX-19. 00. 02475. 0NaNNaNNaNNaNNaN381. 012015-01-03AA1JFKLAX-39. 00. 02475. 0NaNNaNNaNNaNNaN358. 022015-01-04AA1JFKLAX-12. 00. 02475. 0NaNNaNNaNNaNNaN385. 032015-01-05AA1JFKLAX-8. 00. 02475. 0NaNNaNNaNNaNNaN389. 042015-01-06AA1JFKLAX25. 00. 02475. 00. 00. 00. 025. 00. 0424. 0
Bay có thể là một nỗ lực lâu dài và bực bội ở Hoa Kỳ. S. , đặc biệt là vào các ngày lễ và mùa bão khi các chuyến bay bị chậm hàng giờ, đôi khi vài ngày. Với tư cách là người tiêu dùng, chúng ta thường nhận thức được những xu hướng đó, nhưng còn xu hướng chậm trễ hàng ngày của các chuyến bay thì sao?
Một trong những cách tốt nhất để trả lời những câu hỏi như thế này là xem xét sự phân bố của các biến liên quan. Bạn có thể coi phân phối của tập dữ liệu hoặc biến là danh sách các giá trị có thể có và một số chỉ báo về tần suất xuất hiện của mỗi giá trị. Để cập nhật nhanh về bản phân phối, hãy xem bài học này
Trước khi bạn xem xét sự phân bố về sự chậm trễ giữa các hãng hàng không, hãy bắt đầu bằng cách khám phá xem hãng hàng không nào có nhiều sự chậm trễ nhất
Đầu tiên, xây dựng chuỗi cho biết các chuyến bay có bị hoãn hay không, giống như bạn đã làm trong bài học trước
data['delayed'] = data['arr_delay'].apply[lambda x: x > 0] #from previous lesson
Bây giờ hãy đếm số chuyến bay bị hoãn cho mỗi hãng hàng không. Vì bạn chỉ theo đuổi một giá trị cho mỗi hãng hàng không nên bạn không phải dùng
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,
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 và
data.groupby[['unique_carrier','delayed']].size[].unstack[]
0 như bài học trước. Thay vào đó, chỉ cần lọc tập dữ liệu, đếm các hàng cho mỗi lần mang bằng cách sử dụng
data.groupby[['unique_carrier','delayed']].size[].unstack[]
1
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
1
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
Có thể là một ý tưởng hay nếu xem xét tỷ lệ chuyến bay bị hoãn của từng hãng hàng không, thay vì chỉ xem xét tổng số chuyến bay bị hoãn của từng hãng hàng không
ABC của phân tích. Luôn tò mò. Một nhà phân tích giỏ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 mình mà bạn có thể có câu trả lời, hãy tiến xa hơn một chút. Xem xét điều gì có thể ảnh hưởng đến kết quả của bạn và điều gì có thể hỗ trợ cho lập luận phản bác. Phân tích tốt nhất sẽ được trình bày dưới dạng một 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ệ chuyến bay bị hoãn
Để tính tỷ lệ chuyến bay bị hoãn, hãy hoàn thành 4 bước sau
1. Nhóm theo nhà cung cấp dịch vụ và bị trì hoãn
Nhóm các chuyến bay theo
data.groupby[['unique_carrier','delayed']].size[].unstack[]
2 và
data.groupby[['unique_carrier','delayed']].size[].unstack[]
3, lấy số đếm bằng
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 [như bạn đã làm trong bài học trước, sử dụng
data.groupby[['unique_carrier','delayed']].size[].unstack[]
0 để trả về DataFrame
data.groupby[['unique_carrier','delayed']].size[].unstack[]
trễ
Vì bạn sẽ sử dụng điều này để phân tích thêm, sẽ rất hữu ích khi sử dụng
data.groupby[['unique_carrier','delayed']].size[].unstack[]
6 để dọn dẹp chỉ mục. Trong khi bạn đang ở đó, hãy gán DataFrame mới cho một biến
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
9bị trì hoãnunique_carrierFalseTrue0AA891298411AS352721042B6483244013DL1771998034EV1059611371
2. Tạo cột tổng số chuyến bay
Tạo một cột dẫn xuất đơn giản tổng hợp các chuyến bay bị trễ và đúng giờ cho mỗi hãng vận chuyển. Nếu bạn muốn làm mới trên các cột dẫn xuất, hãy quay lại
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
0bị trì hoãnunique_carrierFalseTrueflights_count0AA89129841187531AS3527210456312B64832440192333DL177199803275224EV105961137121967
3. Tính tỷ lệ tổng số chuyến bay bị hoãn
Chia số chuyến bay bị hoãn cho tổng số chuyến bay để có tỷ lệ chuyến bay bị hoãn. Lưu trữ cái này dưới dạng một cột dẫn xuất khác
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
1bị trì hoãnunique_carrierFalseTrueflights_countproportion_delayed0AA89129841187530. 5247691AS3527210456310. 3736462B64832440192330. 4766603DL177199803275220. 356188
4. Sắp xếp theo tỷ lệ chuyến bay bị hoãn
Cuối cùng, xuất toàn bộ bảng, được sắp xếp theo tỷ lệ các chuyến bay bị hoãn bởi hãng
data = datasets[0] # assign SQL query results to the data variable
data = data.fillna[np.nan]
0bị trì hoãnunique_carrierFalseTrueflights_countproportion_delayed7MQ46928060127520. 6320585F91103184829510. 6262288NK1550213336830. 5791470AA89129841187530. 52476910UA78858624165090. 5223829OO997710804207810. 5198984EV1059611371219670. 5176406HA1351135427050. 50055513WN2178921150429390. 4925592B64832440192330. 47666011US78506353142030. 44730012VX125478120350. 3837841AS3527210456310. 3736463DL177199803275220. 356188
Điều này vẽ ra một bức tranh rất khác - Southwest đứng ở giữa nhóm khi nói đến tỷ lệ các chuyến bay bị hoãn
Nhưng còn khoảng thời gian hành khách bị hoãn trên mỗi hãng hàng không thì sao? . Hành khách quan tâm nhiều hơn đến sự chậm trễ của chuyến bay dài hơn so với chuyến bay ngắn hơn và họ có thể chọn một hãng hàng không khác với kỷ lục về sự chậm trễ dài. Đối với hành khách, hãng hàng không nào có vẻ đáng tin cậy hơn?
Bần tiện
Giá trị trung bình, hay giá trị trung bình, cho bạn ý tưởng chung về số phút chuyến bay bị hoãn đối với 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ị được tổng hợp theo mặc định. Bạn có thể xoay cột
data.groupby[['unique_carrier','delayed']].size[].unstack[]
2 để xem thời gian trễ trung bình được tổng hợp bởi hãng hàng không
data = datasets[0] # assign SQL query results to the data variable
data = data.fillna[np.nan]
1
data = datasets[0] # assign SQL query results to the data variable
data = data.fillna[np.nan]
2Lưu ý rằng vì
data.groupby[['unique_carrier','delayed']].size[].unstack[]
8 được tính toán
data.groupby[['unique_carrier','delayed']].size[].unstack[]
9 theo mặc định, điều trên thực sự giống như khi bạn chuyển đối số như thế này một cách rõ ràng [và nó tạo ra kết quả chính xác như vậy]
data = datasets[0] # assign SQL query results to the data variable
data = data.fillna[np.nan]
3
data = datasets[0] # assign SQL query results to the data variable
data = data.fillna[np.nan]
2Thống kê cơ bản với
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
90
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
90 là một hàm tiện dụng khi bạn đang làm việc với các cột số. Bạn có thể sử dụng
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
90 để xem một số 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 tổng quan nhanh về hình dạng của dữ liệuTrước khi sử dụng
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
93, hãy chọn chuỗi
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
94 cho tất cả các chuyến bay Tây Nam
data = datasets[0] # assign SQL query results to the data variable
data = data.fillna[np.nan]
5
data = datasets[0] # assign SQL query results to the data variable
data = data.fillna[np.nan]
6Trong trường hợp khó hiểu, đây là những gì vừa xảy ra, được đánh giá từ trong ra ngoài, sau đó từ trái sang phải
95 tạo một chỉ mục boolean trả 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
96 cho các hàng đại diện cho các chuyến bay Tây NamWN 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
- Gói nó trong
97 áp dụng chỉ mục boolean cho DataFrameWN 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
7WN 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
99 giảm các cột xuống chỉ còn cột ['arr_delay'] [và chỉ mục]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
Bây giờ bạn có thể chạy
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
90 trên đối tượng mới mà bạn đã tạo này để nhận số liệu thống kê cơ bản
data = datasets[0] # assign SQL query results to the data variable
data = data.fillna[np.nan]
7Đâ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 sức để có được thông tin này trong một trong hai công cụ đó, nhưng ở đây thật dễ dàng như việc thêm phương thức
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
90Đây là một sự cố nhanh chóng ở trên vì nó liên quan đến bộ dữ liệu cụ thể này
02. có 42.020 hàng trong tập 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ìnhdata.groupby[['unique_carrier','delayed']].size[].unstack[]
04. độ lệch chuẩn. Thêm về điều này dưới đâyWN 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
05. độ trễ ngắn nhất trong tập dữ liệu. Trong trường hợp này, chuyến bay đã rất sớmWN 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
06. phân vị thứ 25. 25% sự chậm trễ thấp hơnWN 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
07WN 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
08. phần trăm thứ 50, hoặcWN 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
09. 50% sự chậm trễ thấp hơnWN 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
10WN 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
11. phân vị thứ 75. 75% sự chậm trễ thấp hơnWN 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
12WN 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
13. độ trễ dài nhất trong tập dữ liệu.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
14WN 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
Vấn đề thực hành
Nhận số liệu thống kê cơ bản về sự chậm trễ khi đến của các chuyến bay xuất phát từ Chicago. Sử dụng phương pháp
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
90
data = datasets[0] # assign SQL query results to the data variable
data = data.fillna[np.nan]
8
data = datasets[0] # assign SQL query results to the data variable
data = data.fillna[np.nan]
9Nếu tất cả các chuyến bay của Southwest bị hoãn năm phút, nhưng các chuyến bay của American Airlines đôi khi bị hoãn cả ngày, bạn có thể nói rằng sự không chắc chắn về sự chậm trễ của American Airlines cao hơn. Cũng có thể khi các chuyến bay không bị trễ, chúng đến sớm và có thể cho rằng đó là một điểm có lợi cho hãng hàng không. Có rất nhiều sắc thái cho vấn đề này sẽ được khám phá tốt nhất bằng hình ảnh
Bạn có thể biểu thị trực quan sự phân bố độ trễ chuyến bay bằng biểu đồ. Biểu đồ cho phép bạn chuyển các giá trị vào các thùng hoặc phạm vi giá trị cố định và đếm xem có bao nhiêu giá trị rơi vào thùng đó
Trước tiên hãy xem xét một ví dụ nhỏ. Giả sử bạn có hai thùng
data.head[] # our flight data, including delay minute counts by type, and total delay upon arrival
0tương ứng với các phạm vi cố định từ 0 đến 10 và 10 đến 20
Và chúng tôi có dữ liệu
data.head[] # our flight data, including delay minute counts by type, and total delay upon arrival
1Vì vậy, thùng của chúng tôi chứa
data.head[] # our flight data, including delay minute counts by type, and total delay upon arrival
2Vì vậy, biểu đồ sẽ trông như thế này
data.head[] # our flight data, including delay minute counts by type, and total delay upon arrival
3
data.head[] # our flight data, including delay minute counts by type, and total delay upon arrival
4Một điều rất quan trọng cần lưu ý là biểu đồ không phải là biểu đồ thanh. Trong biểu đồ thanh, chiều cao của thanh biểu thị một giá trị số [chẳng hạn như số chuyến bay bị hoãn], nhưng bản thân mỗi thanh biểu thị một danh mục—thứ không thể đếm, tính trung bình hoặc tính tổng [như hãng hàng không]
Trong một biểu đồ, chiều cao của các thanh biểu thị một số giá trị số, giống như biểu đồ thanh. Tuy nhiên, bản thân các thanh không thể được phân loại—mỗi thanh là một nhóm được xác định bởi một biến định lượng [như thời gian trễ chuyến bay]
Một cách để nhanh chóng nhận ra sự khác biệt là biểu đồ không có khoảng cách giữa các thanh. Bởi vì chúng đại diện cho các giá trị trên phổ liên tục, nên khoảng cách giữa các vạch 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 cách giữa các thanh. Vì chúng hiển thị các danh mục nên thứ tự và khoảng cách không quan trọng bằng
Hãy xem bài đăng trên blog này của Flowing Data để có giải thích tuyệt vời về biểu đồ
numpy
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
16
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
Giả sử bạn quan tâm đến việc phân tích độ dài của sự chậm trễ và bạn muốn đặt các độ dài này vào các thùng đại diện cho khoảng thời gian 10 phút một lần. Bạn có thể sử dụng phương thức numpy
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
16 để tạo danh sách các số xác định các thùng đó. Các khoảng thời gian mười phút sẽ nằm trong khoảng từ sớm 50 phút [-50] đến trễ 200 phút [200]. Thùng đầu tiên sẽ chứa số chuyến bay đến sớm từ 50 đến 40 phút, sau đó là 40 đến 30 phút, v.v.
data.head[] # our flight data, including delay minute counts by type, and total delay upon arrival
5
data.head[] # our flight data, including delay minute counts by type, and total delay upon arrival
6Hãy vẽ biểu đồ phân phối sự chậm 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
data.head[] # our flight data, including delay minute counts by type, and total delay upon arrival
7
data.head[] # our flight data, including delay minute counts by type, and total delay upon arrival
8Tuyệt quá. Bạn có thể thấy rằng phần lớn các chuyến bay Southwest không trễ quá 30 phút. Dù hãng có nhiều chuyến nhưng đa số không trễ đến mức khiến bạn tiếc nuối khi đi nghỉ
Vấn đề thực hành
Âm mưu trì hoãn chuyến bay của Virgin America trong khoảng thời gian năm phút từ -50 phút đến 200 phút
data.head[] # our flight data, including delay minute counts by type, and total delay upon arrival
9
data['delayed'] = data['arr_delay'].apply[lambda x: x > 0] #from previous lesson
0Thú vị - xu hướng là một đường cong hình chuông, ngoại trừ việc tăng số lần trễ trong khoảng 20-25 phút
Vấn đề thực hành
Hãy tìm hiểu các chuyến bay của Virgin America bị hoãn bất ngờ. Những chuyến bay nào bị hoãn từ 20-25 phút?
Dung dịch? . Cũng lưu ý rằng chúng tôi chưa chuẩn hóa dữ liệu này về tần suất hãng hàng không bay từ sân bay đó, vì vậy chúng tôi chưa biết liệu có ít chuyến bay bị trễ từ SF hoặc LA hơn so với các sân bay khác hay không
chuyến bay_ngàyunique_carrierflight_numorigindestarr_delaycancelled distancecarrier_delayweather_delaylate_aircraft_delaynas_delaysecurity_delayactual_elapsed_timedelayed595642015-01-02VX969SANSFO-20. 00. 0447. 0NaNNaNNaNNaNNaN86. 0False595652015-01-02VX97IADLAX6. 00. 02288. 0NaNNaNNaNNaNNaN350. 0True599972015-01-14VX720SFODAL3. 00. 01476. 0NaNNaNNaNNaNNaN209. 0True599982015-01-14VX730DALDCA1. 00. 01184. 0NaNNaNNaNNaNNaN160. 0True599992015-01-14VX731DCADAL14. 00. 01184. 0NaNNaNNaNNaNNaN230. 0Đúng
data['delayed'] = data['arr_delay'].apply[lambda x: x > 0] #from previous lesson
1
data['delayed'] = data['arr_delay'].apply[lambda x: x > 0] #from previous lesson
2
data['delayed'] = data['arr_delay'].apply[lambda x: x > 0] #from previous lesson
3
data['delayed'] = data['arr_delay'].apply[lambda x: x > 0] #from previous lesson
4So 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 tôi hình dạng của dữ liệu, nhưng còn hai thì sao?
So sánh sự phân bố của 2 hãng hàng không có tổng số chuyến bay tương đương nhau là US Airways và Envoy Air
data['delayed'] = data['arr_delay'].apply[lambda x: x > 0] #from previous lesson
5
data['delayed'] = data['arr_delay'].apply[lambda x: x > 0] #from previous lesson
6Hai bản phân phối trông giống nhau, nhưng không giống nhau [màu thứ ba là nơi chúng chồng lên nhau]. Bạn có thể dùng. description[] để xem số liệu thống kê chính về các nhà cung cấp dịch vụ
data['delayed'] = data['arr_delay'].apply[lambda x: x > 0] #from previous lesson
7
data['delayed'] = data['arr_delay'].apply[lambda x: x > 0] #from previous lesson
8Có vẻ như sự chậm trễ trên Envoy Airlines được phân phối nhiều hơn so với sự chậm trễ trên US Airways, nghĩa là các giá trị được trải rộng hơn
Độ lệch chuẩn
Một trong những biện pháp bạn thấy ở trên là
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
04, độ lệch chuẩn, mô tả cách phân tán sự chậm trễ chuyến bay. Khi so sánh các biểu đồ, bạn có thể thấy rằng sự chậm trễ của US Airways tập trung nhiều nhất trong khoảng từ -20 đến 20 phút, trong khi sự chậm trễ chuyến bay của Envoy Air phân bổ nhiều hơn từ 0 đến 200 phút. Bạn có thể nói rằng sự chậm trễ của Envoy Air phân tán hơn so với sự chậm trễ của US Airways, có nghĩa là đối với một chuyến bay nhất định của một trong hai hãng hàng không, bạn sẽ ít chắc chắn hơn về thời gian trì hoãn của chuyến bay EnvoyPhép đo độ lệch chuẩn dựa trên khái niệm thống kê về phân phối chuẩn hoặc dạng phân phối dự kiến phổ biến giữa các loại dữ liệu khác nhau. Giá trị cho độ lệch chuẩn xác định một phạm vi trên và dưới giá trị trung bình mà một tỷ lệ phần trăm nhất định của dữ liệu nằm trong đó. Bạn có thể thấy trong hình ảnh này, đối với phân phối chuẩn
- 34. 1% hồ sơ nằm giữa giá trị trung bình và cao hơn một độ lệch chuẩn
- 34. 1% hồ sơ nằm giữa giá trị trung bình và thấp hơn một độ lệch chuẩn
Vì vậy, bạn có thể nói rằng 68. 2% dữ liệu nằm trong một độ lệch chuẩn của giá trị trung bình
Dễ hiểu nhất điều này bằng cách chỉ xem xét độ lệch chuẩn từ đầu ra ở trên
data['delayed'] = data['arr_delay'].apply[lambda x: x > 0] #from previous lesson
9
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
10Bạn có thể thấy rằng Envoy Air có trung bình khoảng 35 phút và độ lệch chuẩn khoảng 58 phút. Điều này có nghĩa là 62. 8% các chuyến bay của Envoy Air đến sớm từ 23 phút [35 - 58 = -23] và trễ 93 phút [35 + 58 = 93]
Ngược lại, US Airways có giá trị trung bình thấp hơn, cho thấy trung bình các chuyến bay của họ ít bị trễ hơn. US Airways cũng có độ lệch chuẩn thấp hơn, nghĩa là sự chậm trễ thường gần với giá trị trung bình. Cụ thể hơn, 62. 8% các chuyến bay của US Airways rơi vào khoảng thời gian sớm 27 phút [7 - 34 = -27] và trễ 41 phút [7 + 34 = 41]
Dựa trên thông tin này, bạn có thể nói rằng sự chậm trễ của US Airways có mức độ phân tán thấp hơn so với Envoy Air
Hãy xem xét một khía cạnh rất thực tế khác của dữ liệu này—sự chậm trễ chuyến bay được phân đoạn theo sân bay. Các sân bay phải đối mặt với nhiều thách thức khác nhau, chẳng hạn như thời tiết, thiết kế đường băng và tình trạng tắc nghẽn ảnh hưởng đến việc khởi hành chuyến bay đúng giờ, vì vậy hãy cùng tìm hiểu xem chúng xếp chồng lên nhau như thế nào. Chúng tôi không muốn bị mắc kẹt trên núi trong những ngày đầu năm mới [hay chúng tôi?]
Để dễ dàng hơn, bạn có thể xem 20 sân bay có lượng khách cao nhất theo xuất xứ
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
11
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
12
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
13
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
14Lọc danh sách các giá trị bằng
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
19
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
Để tạo một chỉ mục boolean nơi bạn đang tìm kiếm các giá trị khớp với bất kỳ thứ gì trong danh sách, bạn phải sử dụng. isin[] với danh sách phù hợp mong muốn
Bạn có thể tạo bộ lọc chỉ mục boolean cho các bản ghi bắt nguồn ['origin'] trong 20 sân bay có khối lượng lớn nhấ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
15chuyến bay_ngàyunique_carrierflight_numorigindestarr_delaycancelled distancecarrier_delayweather_delaylate_aircraft_delaynas_delaysecurity_delayactual_elapsed_timedelayed02015-01-02AA1JFKLAX-19. 00. 02475. 0NaNNaNNaNNaNNaN381. 0False12015-01-03AA1JFKLAX-39. 00. 02475. 0NaNNaNNaNNaNNaN358. 0False22015-01-04AA1JFKLAX-12. 00. 02475. 0NaNNaNNaNNaNNaN385. 0False32015-01-05AA1JFKLAX-8. 00. 02475. 0NaNNaNNaNNaNNaN389. 0False42015-01-06AA1JFKLAX25. 00. 02475. 00. 00. 00. 025. 00. 0424. 0Đúng
Để so sánh, việc sử dụng
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
19 trong Python ở trên tương đương với truy vấn SQL sau
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
16ô hộp
Bây giờ bạn có Khung dữ liệu của các chuyến bay xuất phát từ các sân bay có lượng lớn, bạn có thể hỏi. chuyến bay bị hoãn lâu nhất vào tháng 1 năm 2015 bắt nguồn từ đâu?
Bạn có thể tạo một bảng tổng hợp xoay vòng ngày bay trên sân bay, trong đó các giá trị là giá trị trung bình của độ trễ chuyến bay cho ngày đó
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
17nguồn gốcATLBOSCLTDENDFWDTWEWRFLLIAHJFKLASLAXLGAMCOMSPORTDPHXSEASFOSLCflight_date2015-01-023. 3275363. 5905800. 50931720. 52689936. 049598-6. 8428098. 316993-0. 54330712. 1561873. 68874213. 70951216. 500000-2. 9477125. 8347341. 1933334. 59006216. 54732512. 2547178. 3714294. 5341612015-01-0315. 42811230. 47161613. 76834051. 18629237. 60413822. 73800737. 37022915. 66666739. 84403731. 88297918. 55068526. 11733815. 60642617. 51136420. 02758637. 99570219. 78384313. 77181211. 77336413. 4651902015-01-0421. 42334326. 86785723. 32507752. 49523838. 36010435. 77162653. 61797825. 29365120. 46428655. 44557819. 56476728. 15901632. 45070439. 84702519. 46127983. 22561920. 18008510. 29126219. 25109215. 5031252015-01-053. 09500011. 2086096. 05167229. 89920028. 70526324. 69659422. 67405113. 7118648. 45050519. 55442217. 22938115. 78861834. 98417714. 92920423. 87456463. 91666713. 6652175. 41806013. 2258062. 0033562015-01-066. 36172543. 31058013. 29496415. 34402911. 53462635. 07861643. 10453023. 4259263. 62264243. 35907313. 3305797. 23400461. 16504929. 9967859. 43508842. 35618312. 1566584. 3721808. 5827160. 5814812015-01-070. 94427610. 6513164. 86956533. 30109510. 42876213. 40372722. 03050811. 25446410. 49047615. 5366807. 4986525. 44244646. 0639738. 977918-1. 66666738. 4793617. 3480289. 4679255. 2892162. 9779412015-01-083. 0330996. 80769210. 48456814. 56987311. 21745020. 59306015. 4194632. 5584421. 5711212. 7490918. 5979116. 1713293. 5752219. 15264847. 26460596. 6955788. 0000008. 7383515. 14148712. 6197182015-01-091. 83349921. 0456035. 74233121. 5512378. 59181034. 66565322. 6321071. 8086967. 61135443. 2949644. 4872458. 14411242. 3255818. 7584106. 83445946. 3558372. 1605507. 4640299. 4251783. 8788932015-01-10-5. 4730463. 763547-1. 6589152. 8220145. 5015822. 5849060. 422680-5. 1722690. 9378881. 2592592. 5647062. 709746-11. 3114750. 2732738. 54285716. 6352092. 213483-2. 7615060. 6216222. 7188942015-01-11-2. 118085-2. 5697675. 78928616. 04597719. 7673135. 808725-1. 670543-3. 00873417. 064904-2. 96415840. 79310324. 195531-7. 576923-2. 2429912. 26449322. 57870411. 5571436. 38113227. 6506335. 9460432015-01-1242. 3753758. 25477714. 97552422. 79144419. 11482024. 6927718. 2197808. 96069922. 7105264. 29710112. 71052610. 98217516. 64150921. 5638631. 27451031. 6760565. 3712307. 31851927. 9187197. 0515462015-01-132. 812957-9. 3841060. 0865059. 7892797. 248656-2. 710692-2. 901024-7. 1187211. 415274-13. 214559-2. 937853-1. 553506-0. 883234-1. 462295-5. 66095923. 3232592. 0839903. 26717611. 1536520. 5280902015-01-14-1. 400000-3. 091216-1. 681250-0. 6388382. 690160-1. 903727-5. 4564463. 360360-0. 530120-14. 911877-3. 695418-2. 9585590. 0029941. 885350-7. 6910302. 735369-1. 161593-1. 1348311. 324455-5. 717949
Bạn có thể sử dụng
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
90 để xem giá trị trung bình và độ phân tán của từng sân bay
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
18nguồn gốcATLBOSCLTDENDFWDTWEWRFLLIAHJFKLASLAXLGAMCOMSPORTDPHXSEASFOSLCcount13. 00000013. 00000013. 00000013. 00000013. 00000013. 00000013. 00000013. 00000013. 00000013. 00000013. 00000013. 00000013. 00000013. 00000013. 00000013. 00000013. 00000013. 00000013. 00000013. 000000mean7. 04952211. 6097767. 35053722. 28336418. 21648316. 04434317. 2138706. 93828711. 21608314. 61363811. 72336911. 30248117. 69971511. 9250229. 62724039. 2741239. 2235356. 52683311. 5176445. 083884std12. 79812215. 0048387. 49917216. 17157512. 85443715. 28610118. 71857410. 45238011. 48850422. 61948711. 57410010. 19305723. 42883012. 64702914. 97152428. 1951697. 0515184. 7959028. 7423995. 910367min-5. 473046-9. 384106-1. 681250-0. 6388382. 690160-6. 842809-5. 456446-7. 118721-0. 530120-14. 911877-3. 695418-2. 958559-11. 311475-2. 242991-7. 6910302. 735369-1. 161593-2. 7615060. 621622-5. 71794925%0. 9442763. 5905800. 50931714. 5698738. 5918102. 5849060. 422680-0. 5433071. 5711211. 2592594. 4872455. 442446-0. 8832341. 8853501. 19333322. 5787042. 2134834. 3721805. 2892162. 00335650%3. 0330998. 2547775. 78928620. 52689911. 53462620. 59306015. 4194633. 3603608. 4505054. 29710112. 7105268. 14411215. 6064268. 9779186. 83445937. 9957028. 0000007. 3185199. 4251783. 87889375%6. 36172521. 04560313. 29496429. 89920028. 70526324. 69659422. 67405113. 71186417. 06490431. 88297917. 22938116. 50000034. 98417717. 51136419. 46127946. 35583713. 6652179. 46792513. 2258067. 051546max42. 37537543. 31058023. 32507752. 49523838. 36010435. 77162653. 61797825. 29365139. 84403755. 44557840. 79310328. 15901661. 16504939. 84702547. 26460596. 69557820. 18008513. 77181227. 91871915. 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 bản ghi cho từng sân bay và xếp chồng lên nhau, như bạn đã làm với Envoy Air và US Airways
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
19
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
0Chà, nó cũng khó đọc. Phương pháp xếp chồng các bản phân phối 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 trực quan một chiều về hình dạng của các bản phân phối được gọi là biểu đồ hình hộp.
Các biểu đồ hộp bao gồm các biện pháp phân tán chính giống như bạn nhận được khi chạy
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
90, cho phép nó được hiển thị ở 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 ô hộp làHãy thử sử dụng các biểu đồ hộp để so sánh sự phân bố chậm trễ hàng ngày tại mỗi sân bay
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
1
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
2Như bạn có thể thấy, việc so sánh nhiều bản phân phối với các biểu đồ hộp sẽ đơn giản hơn về mặt trực quan. Các sân bay như JFK có độ trễ phân tán đáng kể, trong khi LGA được phân bổ đều xung quanh độ trễ trung bình thường xuyên nhất. Tuy nhiên, ORD hầu như luôn bị trễ gấp đôi so với mọi sân bay có lượng khách đông đúc khác. Mong đợi sự chậm trễ tuyết ở Chicago vào tháng Giêng
Dẫn dắt phân tích này, chúng tôi đặt ra một số câu hỏi chính. Để trả lời câu hỏi cuối cùng, Những sân bay nào tệ nhất để bay ra?, giờ đây bạn có thể nói rằng bạn [gần như chắc chắn] sẽ bị 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 có thể, hãy tránh các chuyến bay nối chuyến ở Chicago
Vấn đề thực hành
Trực quan hóa độ trễ đến trung bình theo ngày và hãng vận chuyển bằng cách sử dụng các ô hộp
Trong số tất cả các hãng hàng không, Envoy Air có tỷ lệ chậm trễ cao nhất tại các sân bay có lượng khách lớn
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
3
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
4Tom tăt bai học
Như bạn đã thấy trong bài học này, đặt dữ liệu tương phản giúp bạn hiểu rõ hơn về nó. Mặc dù rõ ràng là tất cả các hãng hàng không và sân bay đều bị chậm trễ, nhưng bạn có thể sử dụng số liệu thống kê để nhanh chóng rút ra các xu hướng và sự cố bất thường trên dữ liệu. Độ lệch của dữ liệu so với xu hướng thường được thể hiện rõ ràng trong hình ảnh trực quan, cho phép bạn xác định trực quan các sự kiện bất thường và tìm hiểu sâu hơn