Cho dù bạn chỉ mới tìm hiểu về tập dữ liệu hay chuẩn bị công bố phát hiện của mình, thì trực quan hóa là một công cụ thiết yếu. Thư viện phân tích dữ liệu phổ biến của Python, pandas, cung cấp một số tùy chọn khác nhau để trực quan hóa dữ liệu của bạn với
In [5]: pd.set_option["display.max.columns", None]
In [6]: df.head[]
8. Ngay cả khi bạn đang ở giai đoạn đầu của hành trình tìm hiểu gấu trúc, bạn sẽ sớm tạo các sơ đồ cơ bản sẽ mang lại những hiểu biết có giá trị về dữ liệu của bạnTrong hướng dẫn này, bạn sẽ học
- Các loại biểu đồ gấu trúc khác nhau là gì và khi nào nên sử dụng chúng
- Cách xem tổng quan về tập dữ liệu của bạn bằng biểu đồ
- Cách khám phá mối tương quan với biểu đồ phân tán
- Cách phân tích các danh mục khác nhau và tỷ lệ của chúng
Tiền thưởng miễn phí. Nhấp vào đây để có quyền truy cập vào bảng gian lận Conda với các ví dụ sử dụng hữu ích để quản lý các gói và môi trường Python của bạn
Thiết lập môi trường của bạn
Tốt nhất bạn có thể làm theo mã trong hướng dẫn này trong Jupyter Notebook. Bằng cách này, bạn sẽ thấy ngay các ô của mình và có thể thử với chúng
Bạn cũng sẽ cần một môi trường Python hoạt động bao gồm cả gấu trúc. Nếu bạn chưa có, thì bạn có một số tùy chọn
Nếu bạn có nhiều kế hoạch tham vọng hơn, thì hãy tải xuống bản phân phối Anaconda. Nó rất lớn [khoảng 500 MB], nhưng bạn sẽ được trang bị cho hầu hết các công việc khoa học dữ liệu
Nếu bạn thích thiết lập tối giản, hãy xem phần cài đặt Miniconda trong Thiết lập Python cho Machine Learning trên Windows
Nếu bạn muốn gắn bó với
9, thì hãy cài đặt các thư viện được thảo luận trong hướng dẫn này vớiIn [5]: pd.set_option["display.max.columns", None] In [6]: df.head[]
0. Bạn cũng có thể lấy Jupyter Notebook vớiIn [7]: %matplotlib Using matplotlib backend: MacOSX
1In [7]: %matplotlib Using matplotlib backend: MacOSX
Nếu bạn không muốn thực hiện bất kỳ thiết lập nào, hãy làm theo bản dùng thử Jupyter Notebook trực tuyến
Khi môi trường của bạn được thiết lập, bạn đã sẵn sàng tải xuống tập dữ liệu. Trong hướng dẫn này, bạn sẽ phân tích dữ liệu về các chuyên ngành đại học lấy từ Khảo sát Cộng đồng Hoa Kỳ 2010–2012 Mẫu vi dữ liệu sử dụng công cộng. Nó được dùng làm cơ sở cho Hướng dẫn Kinh tế để Chọn Chuyên ngành Đại học được đăng trên trang web FiveThirtyEight
Trước tiên, hãy tải xuống dữ liệu bằng cách chuyển URL tải xuống tới
In [7]: %matplotlib
Using matplotlib backend: MacOSX
2>>>
In [1]: import pandas as pd
In [2]: download_url = [
...: "//raw.githubusercontent.com/fivethirtyeight/"
...: "data/master/college-majors/recent-grads.csv"
...: ]
In [3]: df = pd.read_csv[download_url]
In [4]: type[df]
Out[4]: pandas.core.frame.DataFrame
Bằng cách gọi
In [7]: %matplotlib
Using matplotlib backend: MacOSX
3, bạn tạo một DataFrame, đây là cấu trúc dữ liệu chính được sử dụng trong pandasGhi chú. Bạn có thể làm theo hướng dẫn này ngay cả khi bạn không quen thuộc với DataFrames. Nhưng nếu bạn muốn tìm hiểu thêm về cách làm việc với pandas và DataFrames, thì bạn có thể xem Sử dụng Pandas và Python để khám phá tập dữ liệu của bạn và The Pandas DataFrame. Làm việc với dữ liệu thú vị
Bây giờ bạn đã có DataFrame, bạn có thể xem dữ liệu. Trước tiên, bạn nên định cấu hình tùy chọn
In [7]: %matplotlib
Using matplotlib backend: MacOSX
4 để đảm bảo pandas không ẩn bất kỳ cột nào. Sau đó, bạn có thể xem một vài hàng dữ liệu đầu tiên với In [7]: %matplotlib
Using matplotlib backend: MacOSX
5>>>
In [5]: pd.set_option["display.max.columns", None]
In [6]: df.head[]
Bạn vừa hiển thị năm hàng đầu tiên của DataFrame
In [7]: %matplotlib
Using matplotlib backend: MacOSX
6 bằng cách sử dụng In [7]: %matplotlib
Using matplotlib backend: MacOSX
5. Đầu ra của bạn sẽ trông như thế nàySố lượng hàng mặc định được hiển thị bởi
In [7]: %matplotlib
Using matplotlib backend: MacOSX
5 là năm, nhưng bạn có thể chỉ định bất kỳ số lượng hàng nào làm đối số. Ví dụ: để hiển thị mười hàng đầu tiên, bạn sẽ sử dụng In [7]: %matplotlib
Using matplotlib backend: MacOSX
9Loại bỏ các quảng cáoTạo âm mưu gấu trúc đầu tiên của bạn
Tập dữ liệu của bạn chứa một số cột liên quan đến thu nhập của sinh viên tốt nghiệp trong mỗi chuyên ngành
0 là thu nhập trung bình của những người làm việc toàn thời gian, quanh nămIn [7]: %matplotlib inline
1 là phân vị thứ 25 của thu nhậpIn [7]: %matplotlib inline
2 là phân vị thứ 75 của thu nhậpIn [7]: %matplotlib inline
3 là thứ hạng của thiếu tá theo thu nhập trung bìnhIn [7]: %matplotlib inline
Hãy bắt đầu với một biểu đồ hiển thị các cột này. Trước tiên, bạn cần thiết lập Jupyter Notebook của mình để hiển thị các biểu đồ với
In [7]: %matplotlib inline
4>>>
In [7]: %matplotlib
Using matplotlib backend: MacOSX
Lệnh ma thuật
In [7]: %matplotlib inline
4 thiết lập Jupyter Notebook của bạn để hiển thị các ô với Matplotlib. Chương trình phụ trợ đồ họa Matplotlib tiêu chuẩn được sử dụng theo mặc định và các ô của bạn sẽ được hiển thị trong một cửa sổ riêngGhi chú. Bạn có thể thay đổi chương trình phụ trợ Matplotlib bằng cách chuyển một đối số cho lệnh ma thuật
In [7]: %matplotlib inline
4Ví dụ: chương trình phụ trợ
In [7]: %matplotlib inline
7 phổ biến cho Jupyter Notebooks vì nó hiển thị biểu đồ trong chính sổ ghi chép, ngay bên dưới ô tạo biểu đồ>>>
In [7]: %matplotlib inline
Có một số phụ trợ khác có sẵn. Để biết thêm thông tin, hãy xem hướng dẫn Rich Outputs trong tài liệu IPython
Bây giờ bạn đã sẵn sàng để thực hiện cốt truyện đầu tiên của mình. Bạn có thể làm như vậy với
In [5]: pd.set_option["display.max.columns", None]
In [6]: df.head[]
8>>>
In [8]: df.plot[x="Rank", y=["P25th", "Median", "P75th"]]
Out[8]:
In [5]: pd.set_option["display.max.columns", None]
In [6]: df.head[]
8 trả về biểu đồ đường chứa dữ liệu từ mọi hàng trong DataFrame. Các giá trị trục x biểu thị thứ hạng của từng tổ chức và các giá trị In [7]: %matplotlib inline
1, In [7]: %matplotlib inline
0 và In [7]: %matplotlib inline
2 được vẽ trên trục yGhi chú. Nếu bạn không theo dõi trong Jupyter Notebook hoặc trong trình bao IPython, thì bạn sẽ cần sử dụng giao diện
In [8]: df.plot[x="Rank", y=["P25th", "Median", "P75th"]]
Out[8]:
3 từ In [8]: df.plot[x="Rank", y=["P25th", "Median", "P75th"]]
Out[8]:
4 để hiển thị cốt truyệnĐây là cách hiển thị hình trong trình bao Python tiêu chuẩn
>>>
>>> import matplotlib.pyplot as plt
>>> df.plot[x="Rank", y=["P25th", "Median", "P75th"]]
>>> plt.show[]
Lưu ý rằng trước tiên bạn phải nhập mô-đun
In [8]: df.plot[x="Rank", y=["P25th", "Median", "P75th"]]
Out[8]:
3 từ Matplotlib trước khi gọi In [8]: df.plot[x="Rank", y=["P25th", "Median", "P75th"]]
Out[8]:
6 để hiển thị cốt truyệnHình do
In [5]: pd.set_option["display.max.columns", None]
In [6]: df.head[]
8 tạo ra được hiển thị trong một cửa sổ riêng biệt theo mặc định và trông như thế nàyNhìn vào cốt truyện, bạn có thể đưa ra những nhận xét sau
Thu nhập trung bình giảm khi thứ hạng giảm. Điều này được mong đợi vì thứ hạng được xác định bởi thu nhập trung bình
Một số chuyên ngành có khoảng cách lớn giữa phần trăm thứ 25 và 75. Những người có bằng cấp này có thể kiếm được ít hơn hoặc nhiều hơn đáng kể so với thu nhập trung bình
Các chuyên ngành khác có khoảng cách rất nhỏ giữa phần trăm thứ 25 và 75. Những người có bằng cấp này kiếm được mức lương rất gần với thu nhập trung bình
Cốt truyện đầu tiên của bạn đã gợi ý rằng còn nhiều điều nữa để khám phá trong dữ liệu. Một số chuyên ngành có phạm vi thu nhập rộng và những chuyên ngành khác có phạm vi thu nhập khá hẹp. Để khám phá những khác biệt này, bạn sẽ sử dụng một số loại biểu đồ khác
Ghi chú. Để có phần giới thiệu về trung vị, phần trăm và các số liệu thống kê khác, hãy xem Nguyên tắc cơ bản về thống kê Python. Cách mô tả dữ liệu của bạn
In [5]: pd.set_option["display.max.columns", None]
In [6]: df.head[]
8 có một số tham số tùy chọn. Đáng chú ý nhất, tham số In [8]: df.plot[x="Rank", y=["P25th", "Median", "P75th"]]
Out[8]:
9 chấp nhận mười một giá trị chuỗi khác nhau và xác định loại biểu đồ bạn sẽ tạo
0 dành cho các lô diện tích>>> import matplotlib.pyplot as plt >>> df.plot[x="Rank", y=["P25th", "Median", "P75th"]] >>> plt.show[]
1 dành cho biểu đồ thanh dọc>>> import matplotlib.pyplot as plt >>> df.plot[x="Rank", y=["P25th", "Median", "P75th"]] >>> plt.show[]
2 dành cho biểu đồ thanh ngang>>> import matplotlib.pyplot as plt >>> df.plot[x="Rank", y=["P25th", "Median", "P75th"]] >>> plt.show[]
3 dành cho ô vuông>>> import matplotlib.pyplot as plt >>> df.plot[x="Rank", y=["P25th", "Median", "P75th"]] >>> plt.show[]
4 dành cho các ô hexbin>>> import matplotlib.pyplot as plt >>> df.plot[x="Rank", y=["P25th", "Median", "P75th"]] >>> plt.show[]
5 dành cho biểu đồ>>> import matplotlib.pyplot as plt >>> df.plot[x="Rank", y=["P25th", "Median", "P75th"]] >>> plt.show[]
6 dành cho biểu đồ ước tính mật độ hạt nhân>>> import matplotlib.pyplot as plt >>> df.plot[x="Rank", y=["P25th", "Median", "P75th"]] >>> plt.show[]
7 là bí danh của>>> import matplotlib.pyplot as plt >>> df.plot[x="Rank", y=["P25th", "Median", "P75th"]] >>> plt.show[]
6>>> import matplotlib.pyplot as plt >>> df.plot[x="Rank", y=["P25th", "Median", "P75th"]] >>> plt.show[]
9 dành cho biểu đồ đường>>> import matplotlib.pyplot as plt >>> df.plot[x="Rank", y=["P25th", "Median", "P75th"]] >>> plt.show[]
0 dành cho biểu đồ hình trònIn [9]: import matplotlib.pyplot as plt In [10]: plt.plot[df["Rank"], df["P75th"]] Out[10]: []
1 dành cho các ô phân tánIn [9]: import matplotlib.pyplot as plt In [10]: plt.plot[df["Rank"], df["P75th"]] Out[10]: []
Giá trị mặc định là
>>> import matplotlib.pyplot as plt
>>> df.plot[x="Rank", y=["P25th", "Median", "P75th"]]
>>> plt.show[]
9. Biểu đồ đường, giống như biểu đồ bạn đã tạo ở trên, cung cấp tổng quan tốt về dữ liệu của bạn. Bạn có thể sử dụng chúng để phát hiện các xu hướng chung. Chúng hiếm khi cung cấp thông tin chi tiết phức tạp, nhưng chúng có thể cung cấp cho bạn manh mối về vị trí cần phóng toNếu bạn không cung cấp tham số cho
In [5]: pd.set_option["display.max.columns", None]
In [6]: df.head[]
8, thì nó sẽ tạo một biểu đồ đường có chỉ mục trên trục x và tất cả các cột số trên trục y. Mặc dù đây là một giá trị mặc định hữu ích cho các tập dữ liệu chỉ có một vài cột, nhưng đối với tập dữ liệu chuyên ngành đại học và một số cột số của nó, nó có vẻ khá lộn xộnGhi chú. Là một cách thay thế cho việc chuyển các chuỗi tới tham số
In [8]: df.plot[x="Rank", y=["P25th", "Median", "P75th"]]
Out[8]:
9 của các đối tượng In [5]: pd.set_option["display.max.columns", None]
In [6]: df.head[]
8, In [9]: import matplotlib.pyplot as plt
In [10]: plt.plot[df["Rank"], df["P75th"]]
Out[10]: []
6 có một số phương thức mà bạn có thể sử dụng để tạo các loại biểu đồ khác nhau được mô tả ở trên
7In [9]: import matplotlib.pyplot as plt In [10]: plt.plot[df["Rank"], df["P75th"]] Out[10]: []
8In [9]: import matplotlib.pyplot as plt In [10]: plt.plot[df["Rank"], df["P75th"]] Out[10]: []
9In [9]: import matplotlib.pyplot as plt In [10]: plt.plot[df["Rank"], df["P75th"]] Out[10]: []
0In [11]: df.plot[x="Rank", y="P75th"] Out[11]:
1In [11]: df.plot[x="Rank", y="P75th"] Out[11]:
2In [11]: df.plot[x="Rank", y="P75th"] Out[11]:
3In [11]: df.plot[x="Rank", y="P75th"] Out[11]:
4In [11]: df.plot[x="Rank", y="P75th"] Out[11]:
5In [11]: df.plot[x="Rank", y="P75th"] Out[11]:
6In [11]: df.plot[x="Rank", y="P75th"] Out[11]:
7In [11]: df.plot[x="Rank", y="P75th"] Out[11]:
Trong hướng dẫn này, bạn sẽ sử dụng giao diện
In [5]: pd.set_option["display.max.columns", None]
In [6]: df.head[]
8 và chuyển các chuỗi tới tham số In [8]: df.plot[x="Rank", y=["P25th", "Median", "P75th"]]
Out[8]:
9. Bạn cũng được khuyến khích thử các phương pháp được đề cập ở trênBây giờ bạn đã tạo cốt truyện gấu trúc đầu tiên của mình, hãy xem xét kỹ hơn cách thức hoạt động của
In [5]: pd.set_option["display.max.columns", None]
In [6]: df.head[]
8Loại bỏ các quảng cáoNhìn dưới mui xe. Matplotlib
Khi bạn gọi
In [5]: pd.set_option["display.max.columns", None]
In [6]: df.head[]
8 trên một đối tượng In [9]: import matplotlib.pyplot as plt
In [10]: plt.plot[df["Rank"], df["P75th"]]
Out[10]: []
6, Matplotlib sẽ tạo cốt truyện dưới mui xeĐể xác minh điều này, hãy thử hai đoạn mã. Đầu tiên, tạo một biểu đồ với Matplotlib bằng hai cột trong DataFrame của bạn
In [9]: import matplotlib.pyplot as plt
In [10]: plt.plot[df["Rank"], df["P75th"]]
Out[10]: []
Đầu tiên, bạn nhập mô-đun
In [12]: median_column = df["Median"]
In [13]: type[median_column]
Out[13]: pandas.core.series.Series
3 và đổi tên nó thành In [12]: median_column = df["Median"]
In [13]: type[median_column]
Out[13]: pandas.core.series.Series
4. Sau đó, bạn gọi In [12]: median_column = df["Median"]
In [13]: type[median_column]
Out[13]: pandas.core.series.Series
5 và chuyển cột In [7]: %matplotlib inline
3 của đối tượng In [9]: import matplotlib.pyplot as plt
In [10]: plt.plot[df["Rank"], df["P75th"]]
Out[10]: []
6 làm đối số đầu tiên và cột In [7]: %matplotlib inline
2 làm đối số thứ haiKết quả là một biểu đồ đường biểu thị phần trăm thứ 75 trên trục y so với thứ hạng trên trục x
Bạn có thể tạo chính xác cùng một biểu đồ bằng cách sử dụng phương thức
In [5]: pd.set_option["display.max.columns", None]
In [6]: df.head[]
8 của đối tượng In [9]: import matplotlib.pyplot as plt
In [10]: plt.plot[df["Rank"], df["P75th"]]
Out[10]: []
6In [11]: df.plot[x="Rank", y="P75th"]
Out[11]:
In [5]: pd.set_option["display.max.columns", None]
In [6]: df.head[]
8 là trình bao bọc cho In [14]: median_column.plot[kind="hist"]
Out[14]:
2 và kết quả là một biểu đồ giống với biểu đồ bạn đã tạo bằng MatplotlibBạn có thể sử dụng cả
In [14]: median_column.plot[kind="hist"]
Out[14]:
2 và In [14]: median_column.plot[kind="hist"]
Out[14]:
4 để tạo cùng một biểu đồ từ các cột của đối tượng In [9]: import matplotlib.pyplot as plt
In [10]: plt.plot[df["Rank"], df["P75th"]]
Out[10]: []
6. Tuy nhiên, nếu bạn đã có một phiên bản In [9]: import matplotlib.pyplot as plt
In [10]: plt.plot[df["Rank"], df["P75th"]]
Out[10]: []
6, thì In [14]: median_column.plot[kind="hist"]
Out[14]:
4 cung cấp cú pháp rõ ràng hơn so với In [14]: median_column.plot[kind="hist"]
Out[14]:
2Ghi chú. Nếu bạn đã quen thuộc với Matplotlib, thì bạn có thể quan tâm đến tham số
In [14]: median_column.plot[kind="hist"]
Out[14]:
9 thành In [5]: pd.set_option["display.max.columns", None]
In [6]: df.head[]
8. Bạn có thể chuyển đến nó một từ điển chứa các đối số từ khóa, sau đó sẽ được chuyển đến chương trình phụ trợ vẽ sơ đồ MatplotlibĐể biết thêm thông tin về Matplotlib, hãy xem Python Plotting With Matplotlib
Bây giờ bạn đã biết rằng phương thức
In [5]: pd.set_option["display.max.columns", None]
In [6]: df.head[]
8 của đối tượng In [9]: import matplotlib.pyplot as plt
In [10]: plt.plot[df["Rank"], df["P75th"]]
Out[10]: []
6 là một trình bao bọc cho In [14]: median_column.plot[kind="hist"]
Out[14]:
2 của Matplotlib, hãy đi sâu vào các loại biểu đồ khác nhau mà bạn có thể tạo và cách tạo chúngKhảo sát dữ liệu của bạn
Các ô tiếp theo sẽ cung cấp cho bạn tổng quan chung về một cột cụ thể trong tập dữ liệu của bạn. Trước tiên, bạn sẽ xem phân phối của một thuộc tính bằng biểu đồ. Sau đó, bạn sẽ biết một số công cụ để kiểm tra các ngoại lệ
Phân phối và biểu đồ
In [9]: import matplotlib.pyplot as plt
In [10]: plt.plot[df["Rank"], df["P75th"]]
Out[10]: []
6 không phải là lớp duy nhất trong pandas có phương thức In [5]: pd.set_option["display.max.columns", None]
In [6]: df.head[]
8. Điều thường xảy ra ở gấu trúc, đối tượng In [5]: pd.set_option["display.max.columns", None]
In [6]: df.head[]
06 cung cấp chức năng tương tựBạn có thể lấy từng cột của DataFrame làm đối tượng
In [5]: pd.set_option["display.max.columns", None]
In [6]: df.head[]
06. Đây là một ví dụ sử dụng cột In [7]: %matplotlib inline
0 của Khung dữ liệu mà bạn đã tạo từ dữ liệu chính của trường đại họcIn [12]: median_column = df["Median"]
In [13]: type[median_column]
Out[13]: pandas.core.series.Series
Bây giờ bạn đã có một đối tượng
In [5]: pd.set_option["display.max.columns", None]
In [6]: df.head[]
06, bạn có thể tạo một biểu đồ cho nó. Biểu đồ là một cách hay để trực quan hóa cách các giá trị được phân phối trên một tập dữ liệu. Biểu đồ nhóm các giá trị vào các thùng và hiển thị số điểm dữ liệu có giá trị trong một thùng cụ thểHãy tạo một biểu đồ cho cột
In [7]: %matplotlib inline
0>>>
In [14]: median_column.plot[kind="hist"]
Out[14]:
Bạn gọi
In [5]: pd.set_option["display.max.columns", None]
In [6]: df.head[]
8 trên Sê-ri In [5]: pd.set_option["display.max.columns", None]
In [6]: df.head[]
12 và chuyển chuỗi >>> import matplotlib.pyplot as plt
>>> df.plot[x="Rank", y=["P25th", "Median", "P75th"]]
>>> plt.show[]
5 cho tham số In [8]: df.plot[x="Rank", y=["P25th", "Median", "P75th"]]
Out[8]:
9. Thats tất cả để có nóKhi bạn gọi
In [5]: pd.set_option["display.max.columns", None]
In [6]: df.head[]
8, bạn sẽ thấy hình sauBiểu đồ hiển thị dữ liệu được nhóm thành mười ngăn từ $20.000 đến $120.000 và mỗi ngăn có chiều rộng là $10.000. Biểu đồ có hình dạng khác với phân phối chuẩn, có dạng hình chuông đối xứng với một đỉnh ở giữa
Ghi chú. Để biết thêm thông tin về biểu đồ, hãy xem Biểu đồ biểu đồ Python. NumPy, Matplotlib, Pandas và Seaborn
Tuy nhiên, biểu đồ của dữ liệu trung vị đạt đỉnh ở bên trái dưới 40.000 đô la. Đuôi kéo dài về bên phải và gợi ý rằng thực sự có những lĩnh vực mà chuyên ngành của họ có thể mong đợi thu nhập cao hơn đáng kể
Loại bỏ các quảng cáongoại lệ
Bạn có phát hiện ra cái thùng nhỏ lẻ loi ở rìa bên phải của bản phân phối không? . Sinh viên ngành này hưởng mức lương cao ngất ngưởng không chỉ so với mặt bằng chung mà thậm chí á quân. Mặc dù đây không phải là mục đích chính của nó, nhưng biểu đồ có thể giúp bạn phát hiện một ngoại lệ như vậy. Hãy điều tra thêm một chút về ngoại lệ
- Ngoại lệ này đại diện cho chuyên ngành nào?
- Làm thế nào lớn là cạnh của nó?
Trái ngược với tổng quan đầu tiên, bạn chỉ muốn so sánh một vài điểm dữ liệu, nhưng bạn muốn xem thêm chi tiết về chúng. Đối với điều này, một biểu đồ thanh là một công cụ tuyệt vời. Đầu tiên, chọn năm chuyên ngành có thu nhập trung bình cao nhất. Bạn sẽ cần hai bước
- Để sắp xếp theo cột
0, hãy sử dụngIn [7]: %matplotlib inline
17 và cung cấp tên của cột bạn muốn sắp xếp cũng như hướngIn [5]: pd.set_option["display.max.columns", None] In [6]: df.head[]
18In [5]: pd.set_option["display.max.columns", None] In [6]: df.head[]
- Để lấy năm mục hàng đầu trong danh sách của bạn, hãy sử dụng
5In [7]: %matplotlib Using matplotlib backend: MacOSX
Hãy tạo một DataFrame mới có tên là
In [5]: pd.set_option["display.max.columns", None]
In [6]: df.head[]
20>>>
In [5]: pd.set_option["display.max.columns", None]
In [6]: df.head[]
0Bây giờ bạn có một DataFrame nhỏ hơn chỉ chứa năm chuyên ngành sinh lợi nhất. Bước tiếp theo, bạn có thể tạo một biểu đồ thanh chỉ hiển thị các chuyên ngành có năm mức lương trung bình hàng đầu này
>>>
In [5]: pd.set_option["display.max.columns", None]
In [6]: df.head[]
1Lưu ý rằng bạn sử dụng các tham số
In [5]: pd.set_option["display.max.columns", None]
In [6]: df.head[]
21 và In [5]: pd.set_option["display.max.columns", None]
In [6]: df.head[]
22 để xoay và định cỡ nhãn của trục x sao cho chúng có thể nhìn thấy được. Bạn sẽ thấy một cốt truyện có 5 thanhBiểu đồ này cho thấy mức lương trung bình của chuyên ngành kỹ thuật dầu khí cao hơn 20.000 đô la so với phần còn lại. Thu nhập của các chuyên ngành từ vị trí thứ hai đến thứ tư tương đối gần nhau
Nếu bạn có một điểm dữ liệu có giá trị cao hơn hoặc thấp hơn nhiều so với phần còn lại, thì có thể bạn sẽ muốn điều tra thêm một chút. Ví dụ: bạn có thể xem các cột chứa dữ liệu liên quan
Hãy điều tra tất cả các chuyên ngành có mức lương trung bình trên 60.000 đô la. Trước tiên, bạn cần lọc những chuyên ngành này bằng mặt nạ
In [5]: pd.set_option["display.max.columns", None]
In [6]: df.head[]
23. Sau đó, bạn có thể tạo một biểu đồ thanh khác hiển thị cả ba cột thu nhập>>>
In [5]: pd.set_option["display.max.columns", None]
In [6]: df.head[]
2Bạn sẽ thấy một biểu đồ có ba thanh trên mỗi dấu chính, như thế này
Phần trăm thứ 25 và 75 xác nhận những gì bạn đã thấy ở trên. chuyên ngành kỹ thuật dầu khí cho đến nay là sinh viên tốt nghiệp gần đây được trả lương cao nhất
Tại sao bạn nên quan tâm đến các ngoại lệ trong bộ dữ liệu này? . Nhưng các ngoại lệ cũng rất thú vị từ quan điểm phân tích. Họ có thể chỉ ra không chỉ các ngành có nhiều tiền mà còn cả dữ liệu không hợp lệ
Dữ liệu không hợp lệ có thể do bất kỳ lỗi hoặc sơ suất nào gây ra, bao gồm mất cảm biến, lỗi trong quá trình nhập dữ liệu thủ công hoặc trẻ 5 tuổi tham gia nhóm tập trung dành cho trẻ từ 10 tuổi trở lên. Điều tra các giá trị ngoại lai là một bước quan trọng trong quá trình làm sạch dữ liệu
Ngay cả khi dữ liệu là chính xác, bạn có thể quyết định rằng nó quá khác so với phần còn lại đến mức nó tạo ra nhiều tiếng ồn hơn là lợi ích. Giả sử bạn phân tích dữ liệu bán hàng của một nhà xuất bản nhỏ. Bạn nhóm doanh thu theo khu vực và so sánh với cùng tháng năm trước. Rồi bất ngờ, nhà xuất bản đạt được một cuốn sách bán chạy toàn quốc
Sự kiện thú vị này làm cho báo cáo của bạn trở nên vô nghĩa. Với dữ liệu bán chạy nhất được bao gồm, doanh số bán hàng đang tăng lên ở mọi nơi. Thực hiện cùng một phân tích mà không có ngoại lệ sẽ cung cấp nhiều thông tin có giá trị hơn, cho phép bạn thấy rằng ở New York, doanh số bán hàng của bạn đã được cải thiện đáng kể, nhưng ở Miami thì tình hình lại tồi tệ hơn
Loại bỏ các quảng cáoKiểm tra tương quan
Thường thì bạn muốn xem liệu hai cột của tập dữ liệu có được kết nối hay không. Nếu bạn chọn chuyên ngành có thu nhập trung bình cao hơn, bạn có ít cơ hội thất nghiệp hơn không?
>>>
In [5]: pd.set_option["display.max.columns", None]
In [6]: df.head[]
3Bạn sẽ thấy một cốt truyện trông khá ngẫu nhiên, như thế này
Nhìn lướt qua con số này cho thấy không có mối tương quan đáng kể nào giữa thu nhập và tỷ lệ thất nghiệp
Mặc dù biểu đồ phân tán là một công cụ tuyệt vời để có ấn tượng đầu tiên về mối tương quan có thể xảy ra, nhưng nó chắc chắn không phải là bằng chứng rõ ràng về mối liên hệ. Để biết tổng quan về mối tương quan giữa các cột khác nhau, bạn có thể sử dụng
In [5]: pd.set_option["display.max.columns", None]
In [6]: df.head[]
24. Nếu bạn nghi ngờ về mối tương quan giữa hai giá trị, thì bạn có sẵn một số công cụ để xác minh linh cảm của mình và đo lường mức độ tương quan mạnh mẽ như thế nàoTuy nhiên, hãy nhớ rằng ngay cả khi tồn tại mối tương quan giữa hai giá trị, điều đó vẫn không có nghĩa là sự thay đổi ở một giá trị này sẽ dẫn đến thay đổi ở giá trị kia. Nói cách khác, tương quan không ngụ ý quan hệ nhân quả
Phân tích dữ liệu phân loại
Để xử lý các khối thông tin lớn hơn, tâm trí con người sắp xếp dữ liệu thành các danh mục một cách có ý thức và vô thức. Kỹ thuật này thường hữu ích, nhưng nó không hoàn hảo
Đôi khi chúng ta đặt mọi thứ vào một danh mục mà khi kiểm tra kỹ hơn, không phải tất cả đều giống nhau. Trong phần này, bạn sẽ biết một số công cụ để kiểm tra các danh mục và xác minh xem một danh mục nhất định có ý nghĩa hay không
Nhiều bộ dữ liệu đã chứa một số phân loại rõ ràng hoặc ngầm định. Trong ví dụ hiện tại, 173 chuyên ngành được chia thành 16 loại
nhóm
Cách sử dụng cơ bản của các danh mục là nhóm và tổng hợp. Bạn có thể sử dụng
In [5]: pd.set_option["display.max.columns", None]
In [6]: df.head[]
25 để xác định mức độ phổ biến của từng danh mục trong bộ dữ liệu chính của trường đại học>>>
In [5]: pd.set_option["display.max.columns", None]
In [6]: df.head[]
4Với
In [5]: pd.set_option["display.max.columns", None]
In [6]: df.head[]
25, bạn tạo một đối tượng In [5]: pd.set_option["display.max.columns", None]
In [6]: df.head[]
27. Với In [5]: pd.set_option["display.max.columns", None]
In [6]: df.head[]
28, bạn tạo một ChuỗiHãy vẽ một biểu đồ thanh ngang hiển thị tất cả tổng số danh mục trong
In [5]: pd.set_option["display.max.columns", None]
In [6]: df.head[]
29>>>
In [5]: pd.set_option["display.max.columns", None]
In [6]: df.head[]
5Bạn sẽ thấy một biểu đồ có một thanh ngang cho mỗi danh mục
Như cốt truyện của bạn cho thấy, cho đến nay, kinh doanh là danh mục chính phổ biến nhất. Trong khi nhân văn và nghệ thuật tự do đứng thứ hai rõ ràng, thì các lĩnh vực còn lại có mức độ phổ biến tương tự nhau hơn
Ghi chú. Một cột chứa dữ liệu phân loại không chỉ mang lại cái nhìn sâu sắc có giá trị để phân tích và trực quan hóa, nó còn tạo cơ hội để
Loại bỏ các quảng cáoxác định tỷ lệ
Biểu đồ thanh dọc và ngang thường là lựa chọn tốt nếu bạn muốn thấy sự khác biệt giữa các danh mục của mình. Nếu bạn quan tâm đến tỷ lệ, thì biểu đồ hình tròn là một công cụ tuyệt vời. Tuy nhiên, vì
In [5]: pd.set_option["display.max.columns", None]
In [6]: df.head[]
29 chứa một số danh mục nhỏ hơn, nên việc tạo biểu đồ hình tròn với In [5]: pd.set_option["display.max.columns", None]
In [6]: df.head[]
31 sẽ tạo ra một số lát nhỏ có nhãn chồng lên nhauĐể giải quyết vấn đề này, bạn có thể gộp các danh mục nhỏ hơn vào một nhóm duy nhất. Hợp nhất tất cả các danh mục có tổng số dưới 100.000 vào một danh mục có tên là
In [5]: pd.set_option["display.max.columns", None]
In [6]: df.head[]
32, sau đó tạo biểu đồ hình tròn>>>
In [5]: pd.set_option["display.max.columns", None]
In [6]: df.head[]
6Lưu ý rằng bạn bao gồm đối số
In [5]: pd.set_option["display.max.columns", None]
In [6]: df.head[]
33. Theo mặc định, gấu trúc thêm nhãn có tên cột. Điều đó thường có ý nghĩa, nhưng trong trường hợp này, nó sẽ chỉ thêm tiếng ồnBây giờ bạn sẽ thấy một biểu đồ hình tròn như thế này
Danh mục
In [5]: pd.set_option["display.max.columns", None]
In [6]: df.head[]
32 vẫn chỉ chiếm một phần rất nhỏ trong chiếc bánh. Đó là một dấu hiệu tốt cho thấy việc hợp nhất các danh mục nhỏ đó là lựa chọn đúng đắnPhóng to Danh mục
Đôi khi bạn cũng muốn xác minh xem một phân loại nhất định có hợp lý hay không. Các thành viên của một danh mục có giống với danh mục khác hơn so với phần còn lại của tập dữ liệu không? . Nói chung, chúng tôi mong đợi phân phối của một danh mục tương tự như phân phối bình thường nhưng có phạm vi nhỏ hơn
Tạo biểu đồ biểu đồ hiển thị phân phối thu nhập trung bình cho các chuyên ngành kỹ thuật
>>>
In [5]: pd.set_option["display.max.columns", None]
In [6]: df.head[]
7Bạn sẽ nhận được một biểu đồ mà bạn có thể so sánh với biểu đồ của tất cả các chuyên ngành ngay từ đầu
Phạm vi thu nhập trung bình chính nhỏ hơn một chút, bắt đầu từ 40.000 đô la. Phân phối gần với bình thường hơn, mặc dù đỉnh của nó vẫn ở bên trái. Vì vậy, ngay cả khi bạn đã quyết định chọn chuyên ngành trong lĩnh vực kỹ thuật, bạn nên tìm hiểu sâu hơn và phân tích các lựa chọn của mình kỹ lưỡng hơn
Phần kết luận
Trong hướng dẫn này, bạn đã học cách bắt đầu trực quan hóa tập dữ liệu của mình bằng Python và thư viện pandas. Bạn đã thấy cách một số đồ thị cơ bản có thể cung cấp cho bạn thông tin chi tiết về dữ liệu và hướng dẫn phân tích của bạn
Trong hướng dẫn này, bạn đã học cách
- Nhận tổng quan về phân phối tập dữ liệu của bạn bằng biểu đồ
- Khám phá mối tương quan với một biểu đồ phân tán
- Phân tích các danh mục với biểu đồ thanh và tỷ lệ của chúng với biểu đồ hình tròn
- Xác định cốt truyện nào phù hợp nhất với nhiệm vụ hiện tại của bạn
Sử dụng
In [5]: pd.set_option["display.max.columns", None]
In [6]: df.head[]
8 và một DataFrame nhỏ, bạn đã phát hiện ra khá nhiều khả năng để cung cấp hình ảnh về dữ liệu của mình. Giờ đây, bạn đã sẵn sàng xây dựng kiến thức này và khám phá những hình ảnh trực quan phức tạp hơn nữaNếu bạn có câu hỏi hoặc nhận xét, xin vui lòng đặt chúng trong phần bình luận bên dưới
Loại bỏ các quảng cáoĐọc thêm
Mặc dù gấu trúc và Matplotlib giúp trực quan hóa dữ liệu của bạn khá đơn giản, nhưng có vô số khả năng để tạo các biểu đồ tinh vi, đẹp mắt hoặc hấp dẫn hơn
Một nơi tuyệt vời để bắt đầu là tài liệu về DataFrame của gấu trúc. Nó chứa cả tổng quan tuyệt vời và một số mô tả chi tiết về nhiều tham số bạn có thể sử dụng với DataFrames của mình
Nếu bạn muốn hiểu rõ hơn về nền tảng của việc vẽ đồ thị với gấu trúc, thì hãy làm quen nhiều hơn với Matplotlib. Mặc dù tài liệu đôi khi có thể quá tải, nhưng Anatomy of Matplotlib đã thực hiện xuất sắc việc giới thiệu một số tính năng nâng cao
Nếu bạn muốn gây ấn tượng với khán giả của mình bằng hình ảnh trực quan tương tác và khuyến khích họ tự khám phá dữ liệu, thì hãy biến Bokeh thành điểm dừng chân tiếp theo của bạn. Bạn có thể tìm thấy tổng quan về các tính năng của Bokeh trong Trực quan hóa dữ liệu tương tác trong Python với Bokeh. Bạn cũng có thể định cấu hình gấu trúc để sử dụng Bokeh thay vì Matplotlib với thư viện
In [5]: pd.set_option["display.max.columns", None]
In [6]: df.head[]
36Nếu bạn muốn tạo trực quan hóa để phân tích thống kê hoặc cho một bài báo khoa học, hãy xem Seaborn. Bạn có thể tìm thấy một bài học ngắn về Seaborn in Python Histogram Plotting
Đánh dấu là đã hoàn thành
Xem ngay Hướng dẫn này có một khóa học video liên quan do nhóm Real Python tạo. Xem nó cùng với hướng dẫn bằng văn bản để hiểu sâu hơn. Âm mưu với gấu trúc. Khái niệm cơ bản về trực quan hóa dữ liệu Python
🐍 Thủ thuật Python 💌
Nhận một Thủ thuật Python ngắn và hấp dẫn được gửi đến hộp thư đến của bạn vài ngày một lần. Không có thư rác bao giờ. Hủy đăng ký bất cứ lúc nào. Được quản lý bởi nhóm Real Python
Gửi cho tôi thủ thuật Python »
Giới thiệu về Reka Horvath
Reka là một Pythonista cuồng nhiệt và viết cho Real Python
» Thông tin thêm về RekaMỗi hướng dẫn tại Real Python được tạo bởi một nhóm các nhà phát triển để nó đáp ứng các tiêu chuẩn chất lượng cao của chúng tôi. Các thành viên trong nhóm đã làm việc trong hướng dẫn này là
Aldren
David
Geir Arne
Joanna
Gia-cốp
Mirko
Bậc thầy Kỹ năng Python trong thế giới thực Với quyền truy cập không giới hạn vào Python thực
Tham gia với chúng tôi và có quyền truy cập vào hàng nghìn hướng dẫn, khóa học video thực hành và cộng đồng các Pythonistas chuyên gia
Nâng cao kỹ năng Python của bạn »
Chuyên gia Kỹ năng Python trong thế giới thực
Với quyền truy cập không giới hạn vào Python thực
Tham gia với chúng tôi và có quyền truy cập vào hàng ngàn hướng dẫn, khóa học video thực hành và cộng đồng Pythonistas chuyên gia
Nâng cao kỹ năng Python của bạn »
Bạn nghĩ sao?
Đánh giá bài viết này
Tweet Chia sẻ Chia sẻ EmailBài học số 1 hoặc điều yêu thích mà bạn đã học được là gì?
Mẹo bình luận. Những nhận xét hữu ích nhất là những nhận xét được viết với mục đích học hỏi hoặc giúp đỡ các sinh viên khác. và nhận câu trả lời cho các câu hỏi phổ biến trong cổng thông tin hỗ trợ của chúng tôi