Xem bây giờ hướng dẫn này có một khóa học video liên quan được tạo bởi nhóm Python thực sự. Xem cùng với hướng dẫn bằng văn bản để hiểu sâu hơn về sự hiểu biết của bạn: Khám phá bộ dữ liệu của bạn với gấu trúc This tutorial has a related video course created by the Real Python team. Watch it together with the written tutorial to deepen your understanding: Explore Your Dataset With Pandas
Bạn có một bộ dữ liệu lớn mà đầy đủ những hiểu biết thú vị, nhưng bạn không chắc chắn nơi bắt đầu khám phá nó? Có phải ông chủ của bạn đã yêu cầu bạn tạo ra một số số liệu thống kê từ nó, nhưng họ không dễ trích xuất? Đây chính xác là những trường hợp sử dụng trong đó gấu trúc và python có thể giúp bạn! Với các công cụ này, bạn sẽ có thể cắt một bộ dữ liệu lớn thành các bộ phận có thể quản lý và hiểu biết sâu sắc từ thông tin đó.Pandas and Python can help you! With these tools, you’ll be able to slice a large dataset down into manageable parts and glean insight from that information.
Trong hướng dẫn này, bạn sẽ học cách:
Tính toán số liệu về dữ liệu của bạn metrics about your data
Thực hiện các truy vấn và tập hợp cơ bản basic queries and
aggregations
Khám phá và xử lý dữ liệu không chính xác, sự không nhất quán và các giá trị bị thiếu and handle incorrect data, inconsistencies, and missing values
Hình dung dữ liệu của bạn với các lô your data with plots
Bạn cũng sẽ tìm hiểu về sự khác biệt giữa các cấu trúc dữ liệu chính mà Pandas và Python sử dụng. Để làm theo, bạn có thể lấy tất cả các mã ví dụ trong hướng dẫn này tại liên kết bên dưới:
Thiết lập môi trường của bạn
Có một vài điều bạn sẽ cần phải bắt đầu với hướng dẫn này. Đầu tiên là sự quen thuộc với các cấu trúc dữ liệu tích hợp Python, đặc biệt là danh sách và từ điển. Để biết thêm thông tin, hãy xem danh sách và bộ dữ liệu trong Python và từ điển trong Python.
Điều thứ hai bạn cần là một môi trường Python hoạt động. Bạn có thể theo dõi trong bất kỳ thiết bị đầu cuối nào đã cài đặt Python 3. Nếu bạn muốn xem đầu ra đẹp hơn, đặc biệt là đối với bộ dữ liệu NBA lớn mà bạn sẽ làm việc, thì bạn có thể muốn chạy các ví dụ trong một cuốn sổ tay Jupyter.
Điều cuối cùng bạn cần là Gandas và các thư viện Python khác mà bạn có thể cài đặt với PIP:
Nếu bạn sử dụng phân phối Anaconda, thì bạn sẽ rất tốt! Anaconda đã được cài đặt thư viện Pandas Python.
Các ví dụ trong hướng dẫn này đã được thử nghiệm với Python 3.7 và Pandas 0,25,0, nhưng chúng cũng nên làm việc trong các phiên bản cũ hơn. Bạn có thể nhận được tất cả các ví dụ mã mà bạn sẽ thấy trong hướng dẫn này trong một cuốn sổ tay Jupyter bằng cách nhấp vào liên kết bên dưới:
Bắt đầu nào!
Sử dụng thư viện Pandas Python
Bây giờ bạn đã cài đặt gấu trúc, đã đến lúc có một cái nhìn về bộ dữ liệu. Trong hướng dẫn này, bạn sẽ phân tích kết quả NBA do FiveThentyEight cung cấp trong tệp CSV 17MB. Tạo tập lệnh
importrequestsdownload_url="https://raw.githubusercontent.com/fivethirtyeight/data/master/nba-elo/nbaallelo.csv"target_csv_path="nba_all_elo.csv"response=requests.get(download_url)response.raise_for_status()# Check that the request was successfulwithopen(target_csv_path,"wb")asf:f.write(response.content)print("Download ready.")
9 để xem chiều của nó. Kết quả là một tuple chứa số lượng hàng và cột.
Bây giờ bạn đã biết rằng có 126.314 hàng và 23 cột trong bộ dữ liệu của bạn. Nhưng làm thế nào bạn có thể chắc chắn bộ dữ liệu thực sự chứa các số liệu thống kê bóng rổ? Bạn có thể nhìn vào năm hàng đầu tiên với
9 để xem chiều của nó. Kết quả là một tuple chứa số lượng hàng và cột.
Bây giờ bạn đã biết rằng có 126.314 hàng và 23 cột trong bộ dữ liệu của bạn. Nhưng làm thế nào bạn có thể chắc chắn bộ dữ liệu thực sự chứa các số liệu thống kê bóng rổ? Bạn có thể nhìn vào năm hàng đầu tiên với
6) cho biết dữ liệu bị thiếu. Nếu bạn làm việc trong một thiết bị đầu cuối, thì đó có lẽ là dễ đọc hơn so với quấn các hàng dài. Tuy nhiên, máy tính xách tay Jupyter sẽ cho phép bạn cuộn. Bạn có thể định cấu hình gấu trúc để hiển thị tất cả 23 cột như thế này:
Mặc dù nó thực tế khi thấy tất cả các cột, nhưng có lẽ bạn đã giành được sáu vị trí thập phân! Thay đổi nó thành hai:
Làm quen với dữ liệu của bạn
Bạn đã nhập một tệp CSV với thư viện Pandas Python và có cái nhìn đầu tiên về nội dung của bộ dữ liệu của bạn. Cho đến nay, bạn chỉ thấy kích thước của bộ dữ liệu của bạn và vài hàng đầu tiên và cuối cùng của nó. Tiếp theo, bạn sẽ học cách kiểm tra dữ liệu của bạn một cách có hệ thống hơn.examine your data more systematically.
Hiển thị các loại dữ liệu
Bước đầu tiên để biết dữ liệu của bạn là khám phá các loại dữ liệu khác nhau mà nó chứa. Mặc dù bạn có thể đặt bất cứ thứ gì vào danh sách, các cột của
9 chứa các giá trị của một loại dữ liệu cụ thể. Khi bạn so sánh các cấu trúc dữ liệu Pandas và Python, bạn sẽ thấy rằng hành vi này làm cho gấu trúc nhanh hơn nhiều!
Bạn có thể hiển thị tất cả các cột và các loại dữ liệu của chúng với
7 là một loại cá bắt đối với các cột mà Pandas không nhận ra là bất kỳ loại cụ thể nào khác. Trong thực tế, nó thường có nghĩa là tất cả các giá trị trong cột là chuỗi.
Mặc dù bạn có thể lưu trữ các đối tượng Python tùy ý trong kiểu dữ liệu
7 có thể gây hại cho hiệu suất của Pandas và khả năng tương tác của nó với các thư viện khác. Để biết thêm thông tin, hãy xem hướng dẫn bắt đầu chính thức.
Hiển thị số liệu thống kê cơ bản
Bây giờ bạn đã thấy những loại dữ liệu nào trong bộ dữ liệu của bạn, đã đến lúc có được cái nhìn tổng quan về các giá trị mà mỗi cột chứa. Bạn có thể làm điều này với
$ conda install requests pandas matplotlib
03:
Hàm này cho bạn thấy một số thống kê mô tả cơ bản cho tất cả các cột số:
$ conda install requests pandas matplotlib
03 Chỉ phân tích các cột số theo mặc định, nhưng bạn có thể cung cấp các loại dữ liệu khác nếu bạn sử dụng tham số
7, vì chúng chủ yếu bao gồm các chuỗi văn bản. Tuy nhiên, nó vẫn sẽ hiển thị một số thống kê mô tả:
Hãy xem các cột
$ conda install requests pandas matplotlib
08 và
$ conda install requests pandas matplotlib
09. Bộ dữ liệu của bạn chứa 104 ID nhóm khác nhau, nhưng chỉ có 53 ID nhượng quyền khác nhau. Hơn nữa, ID nhóm thường xuyên nhất là
$ conda install requests pandas matplotlib
10, nhưng ID nhượng quyền thường xuyên nhất
$ conda install requests pandas matplotlib
11. Làm thế nào là có thể? Bạn cần phải khám phá bộ dữ liệu của mình thêm một chút để trả lời câu hỏi này.
Khám phá bộ dữ liệu của bạn
Phân tích dữ liệu khám phá có thể giúp bạn trả lời các câu hỏi về bộ dữ liệu của bạn. Ví dụ: bạn có thể kiểm tra tần suất các giá trị cụ thể xảy ra trong một cột: can help you answer questions about your dataset. For example, you can examine how often specific values occur in a column:
7, vì chúng chủ yếu bao gồm các chuỗi văn bản. Tuy nhiên, nó vẫn sẽ hiển thị một số thống kê mô tả:
Hãy xem các cột
$ conda install requests pandas matplotlib
08 và
$ conda install requests pandas matplotlib
09. Bộ dữ liệu của bạn chứa 104 ID nhóm khác nhau, nhưng chỉ có 53 ID nhượng quyền khác nhau. Hơn nữa, ID nhóm thường xuyên nhất là
$ conda install requests pandas matplotlib
10, nhưng ID nhượng quyền thường xuyên nhất
$ conda install requests pandas matplotlib
11. Làm thế nào là có thể? Bạn cần phải khám phá bộ dữ liệu của mình thêm một chút để trả lời câu hỏi này.
Khám phá bộ dữ liệu của bạn
Phân tích dữ liệu khám phá có thể giúp bạn trả lời các câu hỏi về bộ dữ liệu của bạn. Ví dụ: bạn có thể kiểm tra tần suất các giá trị cụ thể xảy ra trong một cột:
Có vẻ như một đội tên $ conda install requests pandas matplotlib
12 đã chơi 6024 trò chơi, nhưng chỉ có 5078 trong số đó được chơi bởi Los Angeles Lakers. Tìm ra nhóm $ conda install requests pandas matplotlib
12 khác là ai:
Thật vậy, Minneapolis Lakers (
$ conda install requests pandas matplotlib
14) đã chơi 946 trận. Bạn thậm chí có thể tìm hiểu khi họ chơi những trò chơi đó. Đối với điều đó, trước tiên, bạn sẽ xác định một cột chuyển đổi giá trị của
$ conda install requests pandas matplotlib
15 thành kiểu dữ liệu
$ conda install requests pandas matplotlib
16. Sau đó, bạn có thể sử dụng các chức năng tổng hợp
$ conda install requests pandas matplotlib
17 và
$ conda install requests pandas matplotlib
18, để tìm các trò chơi đầu tiên và cuối cùng của Minneapolis Lakers:
$ conda install requests pandas matplotlib
26 objects. Create a new
$ conda install requests pandas matplotlib
27 object based on a list:
>>>
$ conda install requests pandas matplotlib
2
Bạn đã sử dụng danh sách
$ conda install requests pandas matplotlib
28 để tạo đối tượng
$ conda install requests pandas matplotlib
27 được gọi là
$ conda install requests pandas matplotlib
30. Đối tượng
$ conda install requests pandas matplotlib
27 kết thúc hai thành phần:
Một chuỗi các giá trịvalues
Một chuỗi các định danh, là chỉ mụcidentifiers, which is the index
Bạn có thể truy cập các thành phần này với
$ conda install requests pandas matplotlib
32 và
$ conda install requests pandas matplotlib
33, tương ứng:
>>>
$ conda install requests pandas matplotlib
3
$ conda install requests pandas matplotlib
34 Trả về các giá trị trong
$ conda install requests pandas matplotlib
27, trong khi
$ conda install requests pandas matplotlib
36 trả về chỉ số vị trí.
Trong khi Pandas xây dựng trên Numpy, một sự khác biệt đáng kể là trong việc lập chỉ mục của chúng. Giống như một mảng numpy, một gấu trúc
$ conda install requests pandas matplotlib
27 cũng có một chỉ số số nguyên mà Lừa được xác định ngầm. Chỉ số ngầm này chỉ ra vị trí phần tử trong
$ conda install requests pandas matplotlib
27.indexing. Just like a NumPy array, a Pandas
$ conda install requests pandas matplotlib
27 also has an integer index that’s implicitly defined. This implicit index indicates the element’s position in the
$ conda install requests pandas matplotlib
27.
Tuy nhiên, một
$ conda install requests pandas matplotlib
27 cũng có thể có một loại chỉ mục tùy ý. Bạn có thể nghĩ về chỉ mục rõ ràng này như là nhãn cho một hàng cụ thể:
>>>
$ conda install requests pandas matplotlib
4
Ở đây, chỉ số là một danh sách các tên thành phố được đại diện bởi các chuỗi. Bạn có thể nhận thấy rằng từ điển Python cũng sử dụng các chỉ số chuỗi, và đây là một sự tương tự tiện dụng để ghi nhớ! Bạn có thể sử dụng các khối mã ở trên để phân biệt giữa hai loại
$ conda install requests pandas matplotlib
27:
$ conda install requests pandas matplotlib
30:
$ conda install requests pandas matplotlib
27 này hoạt động giống như một danh sách Python vì nó chỉ có chỉ số vị trí. This
$ conda install requests pandas matplotlib
27 behaves like a Python list because it only has a positional index.
$ conda install requests pandas matplotlib
43:
$ conda install requests pandas matplotlib
27 này hoạt động giống như một từ điển Python vì nó có cả chỉ số vị trí và nhãn. This
$ conda install requests pandas matplotlib
27 acts like a Python dictionary because it features both a positional and a label index.
Tại đây, cách xây dựng một
$ conda install requests pandas matplotlib
27 với một chỉ mục nhãn từ từ điển Python:
>>>
$ conda install requests pandas matplotlib
5
Các khóa từ điển trở thành chỉ mục và các giá trị từ điển là các giá trị
$ conda install requests pandas matplotlib
27.
Giống như từ điển,
$ conda install requests pandas matplotlib
27 cũng hỗ trợ
$ conda install requests pandas matplotlib
48 và từ khóa
$ conda install requests pandas matplotlib
49:
>>>
$ conda install requests pandas matplotlib
6
Bạn có thể sử dụng các phương pháp này để trả lời các câu hỏi về bộ dữ liệu của bạn một cách nhanh chóng.
Hiểu các đối tượng DataFrame
Mặc dù
$ conda install requests pandas matplotlib
27 là một cấu trúc dữ liệu khá mạnh mẽ, nhưng nó có những hạn chế. Ví dụ: bạn chỉ có thể lưu trữ một thuộc tính cho mỗi khóa. Như bạn đã thấy với bộ dữ liệu
importrequestsdownload_url="https://raw.githubusercontent.com/fivethirtyeight/data/master/nba-elo/nbaallelo.csv"target_csv_path="nba_all_elo.csv"response=requests.get(download_url)response.raise_for_status()# Check that the request was successfulwithopen(target_csv_path,"wb")asf:f.write(response.content)print("Download ready.")
0
Trục được đánh dấu bằng 0 là chỉ số hàng và trục được đánh dấu bằng 1 là chỉ mục cột. Thuật ngữ này rất quan trọng để biết bởi vì bạn sẽ gặp một số phương thức
9, những don don này liên quan đến chỉ mục, nhưng với các cột:
>>>
importrequestsdownload_url="https://raw.githubusercontent.com/fivethirtyeight/data/master/nba-elo/nbaallelo.csv"target_csv_path="nba_all_elo.csv"response=requests.get(download_url)response.raise_for_status()# Check that the request was successfulwithopen(target_csv_path,"wb")asf:f.write(response.content)print("Download ready.")
1
Bạn có thể thấy các khái niệm này hoạt động với bộ dữ liệu NBA lớn hơn. Nó có chứa một cột được gọi là
$ conda install requests pandas matplotlib
73, hoặc nó được gọi là
$ conda install requests pandas matplotlib
74? Để trả lời câu hỏi này, hãy hiển thị chỉ mục và các trục của bộ dữ liệu
importrequestsdownload_url="https://raw.githubusercontent.com/fivethirtyeight/data/master/nba-elo/nbaallelo.csv"target_csv_path="nba_all_elo.csv"response=requests.get(download_url)response.raise_for_status()# Check that the request was successfulwithopen(target_csv_path,"wb")asf:f.write(response.content)print("Download ready.")
importrequestsdownload_url="https://raw.githubusercontent.com/fivethirtyeight/data/master/nba-elo/nbaallelo.csv"target_csv_path="nba_all_elo.csv"response=requests.get(download_url)response.raise_for_status()# Check that the request was successfulwithopen(target_csv_path,"wb")asf:f.write(response.content)print("Download ready.")
3
Bạn có thể kiểm tra sự tồn tại của một cột với
$ conda install requests pandas matplotlib
48:
>>>
importrequestsdownload_url="https://raw.githubusercontent.com/fivethirtyeight/data/master/nba-elo/nbaallelo.csv"target_csv_path="nba_all_elo.csv"response=requests.get(download_url)response.raise_for_status()# Check that the request was successfulwithopen(target_csv_path,"wb")asf:f.write(response.content)print("Download ready.")
4
Cột được gọi là
$ conda install requests pandas matplotlib
74, không phải
$ conda install requests pandas matplotlib
73.
Khi bạn sử dụng các phương pháp này để trả lời các câu hỏi về bộ dữ liệu của bạn, hãy nhớ lưu ý rằng liệu bạn có làm việc với
27 dựa trên danh sách Python và so sánh hai cấu trúc dữ liệu. Bạn đã thấy cách một đối tượng
$ conda install requests pandas matplotlib
27 tương tự như danh sách và từ điển theo nhiều cách. Một điểm tương đồng hơn nữa là bạn cũng có thể sử dụng toán tử lập chỉ mục (
$ conda install requests pandas matplotlib
87) cho
$ conda install requests pandas matplotlib
27.indexing operator (
$ conda install requests pandas matplotlib
87) for
$ conda install requests pandas matplotlib
27 as well.
Bạn cũng sẽ học cách sử dụng hai phương pháp truy cập cụ thể của Pandas:access methods:
$ conda install requests pandas matplotlib
89
$ conda install requests pandas matplotlib
90
Bạn có thể thấy rằng các phương thức truy cập dữ liệu này có thể dễ đọc hơn nhiều so với toán tử lập chỉ mục.
Sử dụng toán tử lập chỉ mục
Hãy nhớ lại rằng
$ conda install requests pandas matplotlib
27 có hai chỉ số:
Một chỉ số vị trí hoặc tiềm ẩn, luôn luôn là
$ conda install requests pandas matplotlib
76, which is always a
$ conda install requests pandas matplotlib
76
Một nhãn hoặc chỉ mục rõ ràng, có thể chứa bất kỳ đối tượng có thể băm nào, which can contain any hashable objects
Tiếp theo, xem lại đối tượng
$ conda install requests pandas matplotlib
43:
>>>
importrequestsdownload_url="https://raw.githubusercontent.com/fivethirtyeight/data/master/nba-elo/nbaallelo.csv"target_csv_path="nba_all_elo.csv"response=requests.get(download_url)response.raise_for_status()# Check that the request was successfulwithopen(target_csv_path,"wb")asf:f.write(response.content)print("Download ready.")
5
Bạn có thể truy cập một cách thuận tiện các giá trị trong
$ conda install requests pandas matplotlib
27 với cả nhãn và chỉ số vị trí:
>>>
importrequestsdownload_url="https://raw.githubusercontent.com/fivethirtyeight/data/master/nba-elo/nbaallelo.csv"target_csv_path="nba_all_elo.csv"response=requests.get(download_url)response.raise_for_status()# Check that the request was successfulwithopen(target_csv_path,"wb")asf:f.write(response.content)print("Download ready.")
6
Bạn có thể truy cập một cách thuận tiện các giá trị trong
$ conda install requests pandas matplotlib
27 với cả nhãn và chỉ số vị trí:
>>>
importrequestsdownload_url="https://raw.githubusercontent.com/fivethirtyeight/data/master/nba-elo/nbaallelo.csv"target_csv_path="nba_all_elo.csv"response=requests.get(download_url)response.raise_for_status()# Check that the request was successfulwithopen(target_csv_path,"wb")asf:f.write(response.content)print("Download ready.")
7
Bạn có thể truy cập một cách thuận tiện các giá trị trong
$ conda install requests pandas matplotlib
27 với cả nhãn và chỉ số vị trí:
Bạn cũng có thể sử dụng các chỉ số và lát cắt âm, giống như bạn làm cho một danh sách:
Nếu bạn muốn tìm hiểu thêm về khả năng của toán tử lập chỉ mục, thì hãy xem danh sách và bộ dữ liệu trong Python.
>>>
importrequestsdownload_url="https://raw.githubusercontent.com/fivethirtyeight/data/master/nba-elo/nbaallelo.csv"target_csv_path="nba_all_elo.csv"response=requests.get(download_url)response.raise_for_status()# Check that the request was successfulwithopen(target_csv_path,"wb")asf:f.write(response.content)print("Download ready.")
8
Bạn có thể truy cập một cách thuận tiện các giá trị trong
$ conda install requests pandas matplotlib
27 với cả nhãn và chỉ số vị trí:
Bạn cũng có thể sử dụng các chỉ số và lát cắt âm, giống như bạn làm cho một danh sách:data access methods:
Nếu bạn muốn tìm hiểu thêm về khả năng của toán tử lập chỉ mục, thì hãy xem danh sách và bộ dữ liệu trong Python. refers to the
label index.
Sử dụng
$ conda install requests pandas matplotlib
89 và
$ conda install requests pandas matplotlib
90 refers to the positional index.
Toán tử lập chỉ mục (
$ conda install requests pandas matplotlib
87) thuận tiện, nhưng có một cảnh báo. Điều gì sẽ xảy ra nếu các nhãn cũng là số? Giả sử bạn phải làm việc với một đối tượng
$ conda install requests pandas matplotlib
27 như thế này:
>>>
importrequestsdownload_url="https://raw.githubusercontent.com/fivethirtyeight/data/master/nba-elo/nbaallelo.csv"target_csv_path="nba_all_elo.csv"response=requests.get(download_url)response.raise_for_status()# Check that the request was successfulwithopen(target_csv_path,"wb")asf:f.write(response.content)print("Download ready.")
9
Bạn có thể truy cập một cách thuận tiện các giá trị trong
$ conda install requests pandas matplotlib
27 với cả nhãn và chỉ số vị trí:
Bạn cũng có thể sử dụng các chỉ số và lát cắt âm, giống như bạn làm cho một danh sách:
Nếu bạn muốn tìm hiểu thêm về khả năng của toán tử lập chỉ mục, thì hãy xem danh sách và bộ dữ liệu trong Python.
Sử dụng
$ conda install requests pandas matplotlib
89 và
$ conda install requests pandas matplotlib
90
Toán tử lập chỉ mục (
$ conda install requests pandas matplotlib
87) thuận tiện, nhưng có một cảnh báo. Điều gì sẽ xảy ra nếu các nhãn cũng là số? Giả sử bạn phải làm việc với một đối tượng
Bạn có thể truy cập một cách thuận tiện các giá trị trong
$ conda install requests pandas matplotlib
27 với cả nhãn và chỉ số vị trí:positional indices of
importrequestsdownload_url="https://raw.githubusercontent.com/fivethirtyeight/data/master/nba-elo/nbaallelo.csv"target_csv_path="nba_all_elo.csv"response=requests.get(download_url)response.raise_for_status()# Check that the request was successfulwithopen(target_csv_path,"wb")asf:f.write(response.content)print("Download ready.")
08 and
importrequestsdownload_url="https://raw.githubusercontent.com/fivethirtyeight/data/master/nba-elo/nbaallelo.csv"target_csv_path="nba_all_elo.csv"response=requests.get(download_url)response.raise_for_status()# Check that the request was successfulwithopen(target_csv_path,"wb")asf:f.write(response.content)print("Download ready.")
24. The closing item
importrequestsdownload_url="https://raw.githubusercontent.com/fivethirtyeight/data/master/nba-elo/nbaallelo.csv"target_csv_path="nba_all_elo.csv"response=requests.get(download_url)response.raise_for_status()# Check that the request was successfulwithopen(target_csv_path,"wb")asf:f.write(response.content)print("Download ready.")
25 with a positional index of
importrequestsdownload_url="https://raw.githubusercontent.com/fivethirtyeight/data/master/nba-elo/nbaallelo.csv"target_csv_path="nba_all_elo.csv"response=requests.get(download_url)response.raise_for_status()# Check that the request was successfulwithopen(target_csv_path,"wb")asf:f.write(response.content)print("Download ready.")
26 is excluded.
Bạn cũng có thể sử dụng các chỉ số và lát cắt âm, giống như bạn làm cho một danh sách:
Bạn có thể truy cập một cách thuận tiện các giá trị trong
$ conda install requests pandas matplotlib
27 với cả nhãn và chỉ số vị trí:label
index between
importrequestsdownload_url="https://raw.githubusercontent.com/fivethirtyeight/data/master/nba-elo/nbaallelo.csv"target_csv_path="nba_all_elo.csv"response=requests.get(download_url)response.raise_for_status()# Check that the request was successfulwithopen(target_csv_path,"wb")asf:f.write(response.content)print("Download ready.")
26 and
importrequestsdownload_url="https://raw.githubusercontent.com/fivethirtyeight/data/master/nba-elo/nbaallelo.csv"target_csv_path="nba_all_elo.csv"response=requests.get(download_url)response.raise_for_status()# Check that the request was successfulwithopen(target_csv_path,"wb")asf:f.write(response.content)print("Download ready.")
29. Here, the closing item
importrequestsdownload_url="https://raw.githubusercontent.com/fivethirtyeight/data/master/nba-elo/nbaallelo.csv"target_csv_path="nba_all_elo.csv"response=requests.get(download_url)response.raise_for_status()# Check that the request was successfulwithopen(target_csv_path,"wb")asf:f.write(response.content)print("Download ready.")
30 has a label index of
importrequestsdownload_url="https://raw.githubusercontent.com/fivethirtyeight/data/master/nba-elo/nbaallelo.csv"target_csv_path="nba_all_elo.csv"response=requests.get(download_url)response.raise_for_status()# Check that the request was successfulwithopen(target_csv_path,"wb")asf:f.write(response.content)print("Download ready.")
29 and is included in the output.
Bạn cũng có thể sử dụng các chỉ số và lát cắt âm, giống như bạn làm cho một danh sách:
Bạn có thể truy cập một cách thuận tiện các giá trị trong
$ conda install requests pandas matplotlib
27 với cả nhãn và chỉ số vị trí:
Bạn cũng có thể sử dụng các chỉ số và lát cắt âm, giống như bạn làm cho một danh sách:
Nếu bạn muốn tìm hiểu thêm về khả năng của toán tử lập chỉ mục, thì hãy xem danh sách và bộ dữ liệu trong Python.list.
Sử dụng
$ conda install requests pandas matplotlib
89 và
$ conda install requests pandas matplotlib
90dictionary.
Toán tử lập chỉ mục (
$ conda install requests pandas matplotlib
87) thuận tiện, nhưng có một cảnh báo. Điều gì sẽ xảy ra nếu các nhãn cũng là số? Giả sử bạn phải làm việc với một đối tượng
$ conda install requests pandas matplotlib
27 như thế này:
$ conda install requests pandas matplotlib
99 sẽ trở lại là gì? Đối với một chỉ số vị trí, $ conda install requests pandas matplotlib
99 là import requests
download_url = "https://raw.githubusercontent.com/fivethirtyeight/data/master/nba-elo/nbaallelo.csv"
target_csv_path = "nba_all_elo.csv"
response = requests.get(download_url)
response.raise_for_status() # Check that the request was successful
with open(target_csv_path, "wb") as f:
f.write(response.content)
print("Download ready.")
01. Tuy nhiên, nếu bạn đi theo chỉ mục nhãn, thì $ conda install requests pandas matplotlib
99 sẽ đề cập đến import requests
download_url = "https://raw.githubusercontent.com/fivethirtyeight/data/master/nba-elo/nbaallelo.csv"
target_csv_path = "nba_all_elo.csv"
response = requests.get(download_url)
response.raise_for_status() # Check that the request was successful
with open(target_csv_path, "wb") as f:
f.write(response.content)
print("Download ready.")
03.
Tin tốt là, bạn không cần phải tìm ra nó! Thay vào đó, để tránh nhầm lẫn, thư viện Pandas Python cung cấp hai phương thức truy cập dữ liệu:dimension of the
Các phương pháp truy cập dữ liệu này dễ đọc hơn nhiều:
importrequestsdownload_url="https://raw.githubusercontent.com/fivethirtyeight/data/master/nba-elo/nbaallelo.csv"target_csv_path="nba_all_elo.csv"response=requests.get(download_url)response.raise_for_status()# Check that the request was successfulwithopen(target_csv_path,"wb")asf:f.write(response.content)print("Download ready.")
06 đã trả về
importrequestsdownload_url="https://raw.githubusercontent.com/fivethirtyeight/data/master/nba-elo/nbaallelo.csv"target_csv_path="nba_all_elo.csv"response=requests.get(download_url)response.raise_for_status()# Check that the request was successfulwithopen(target_csv_path,"wb")asf:f.write(response.content)print("Download ready.")
03, phần tử với nhãn
importrequestsdownload_url="https://raw.githubusercontent.com/fivethirtyeight/data/master/nba-elo/nbaallelo.csv"target_csv_path="nba_all_elo.csv"response=requests.get(download_url)response.raise_for_status()# Check that the request was successfulwithopen(target_csv_path,"wb")asf:f.write(response.content)print("Download ready.")
08.
importrequestsdownload_url="https://raw.githubusercontent.com/fivethirtyeight/data/master/nba-elo/nbaallelo.csv"target_csv_path="nba_all_elo.csv"response=requests.get(download_url)response.raise_for_status()# Check that the request was successfulwithopen(target_csv_path,"wb")asf:f.write(response.content)print("Download ready.")
09 đã trả về
importrequestsdownload_url="https://raw.githubusercontent.com/fivethirtyeight/data/master/nba-elo/nbaallelo.csv"target_csv_path="nba_all_elo.csv"response=requests.get(download_url)response.raise_for_status()# Check that the request was successfulwithopen(target_csv_path,"wb")asf:f.write(response.content)print("Download ready.")
01, phần tử có chỉ mục
importrequestsdownload_url="https://raw.githubusercontent.com/fivethirtyeight/data/master/nba-elo/nbaallelo.csv"target_csv_path="nba_all_elo.csv"response=requests.get(download_url)response.raise_for_status()# Check that the request was successfulwithopen(target_csv_path,"wb")asf:f.write(response.content)print("Download ready.")
90 so với việc tìm ra toán tử lập chỉ mục sẽ quay lại. Ngay cả khi bạn quen thuộc với tất cả các kỳ quặc của toán tử lập chỉ mục, có thể rất nguy hiểm khi cho rằng tất cả những người đọc mã của bạn cũng đã nội bộ hóa các quy tắc đó!
Bạn cũng có thể sử dụng các chỉ số và lát cắt âm, giống như bạn làm cho một danh sách:
importrequestsdownload_url="https://raw.githubusercontent.com/fivethirtyeight/data/master/nba-elo/nbaallelo.csv"target_csv_path="nba_all_elo.csv"response=requests.get(download_url)response.raise_for_status()# Check that the request was successfulwithopen(target_csv_path,"wb")asf:f.write(response.content)print("Download ready.")
65:
importrequestsdownload_url="https://raw.githubusercontent.com/fivethirtyeight/data/master/nba-elo/nbaallelo.csv"target_csv_path="nba_all_elo.csv"response=requests.get(download_url)response.raise_for_status()# Check that the request was successfulwithopen(target_csv_path,"wb")asf:f.write(response.content)print("Download ready.")
66 chọn hàng với chỉ mục nhãn
importrequestsdownload_url="https://raw.githubusercontent.com/fivethirtyeight/data/master/nba-elo/nbaallelo.csv"target_csv_path="nba_all_elo.csv"response=requests.get(download_url)response.raise_for_status()# Check that the request was successfulwithopen(target_csv_path,"wb")asf:f.write(response.content)print("Download ready.")
67.
selects the row with the label index
importrequestsdownload_url="https://raw.githubusercontent.com/fivethirtyeight/data/master/nba-elo/nbaallelo.csv"target_csv_path="nba_all_elo.csv"response=requests.get(download_url)response.raise_for_status()# Check that the request was successfulwithopen(target_csv_path,"wb")asf:f.write(response.content)print("Download ready.")
67.
importrequestsdownload_url="https://raw.githubusercontent.com/fivethirtyeight/data/master/nba-elo/nbaallelo.csv"target_csv_path="nba_all_elo.csv"response=requests.get(download_url)response.raise_for_status()# Check that the request was successfulwithopen(target_csv_path,"wb")asf:f.write(response.content)print("Download ready.")
68 chọn các hàng với các chỉ số nhãn từ
importrequestsdownload_url="https://raw.githubusercontent.com/fivethirtyeight/data/master/nba-elo/nbaallelo.csv"target_csv_path="nba_all_elo.csv"response=requests.get(download_url)response.raise_for_status()# Check that the request was successfulwithopen(target_csv_path,"wb")asf:f.write(response.content)print("Download ready.")
69 đến
importrequestsdownload_url="https://raw.githubusercontent.com/fivethirtyeight/data/master/nba-elo/nbaallelo.csv"target_csv_path="nba_all_elo.csv"response=requests.get(download_url)response.raise_for_status()# Check that the request was successfulwithopen(target_csv_path,"wb")asf:f.write(response.content)print("Download ready.")
70. Hãy nhớ rằng,
$ conda install requests pandas matplotlib
89 là bao gồm. selects the rows with label indices from
importrequestsdownload_url="https://raw.githubusercontent.com/fivethirtyeight/data/master/nba-elo/nbaallelo.csv"target_csv_path="nba_all_elo.csv"response=requests.get(download_url)response.raise_for_status()# Check that the request was successfulwithopen(target_csv_path,"wb")asf:f.write(response.content)print("Download ready.")
69 to
importrequestsdownload_url="https://raw.githubusercontent.com/fivethirtyeight/data/master/nba-elo/nbaallelo.csv"target_csv_path="nba_all_elo.csv"response=requests.get(download_url)response.raise_for_status()# Check that the request was successfulwithopen(target_csv_path,"wb")asf:f.write(response.content)print("Download ready.")
70. Remember,
$ conda install requests pandas matplotlib
89 is inclusive.
importrequestsdownload_url="https://raw.githubusercontent.com/fivethirtyeight/data/master/nba-elo/nbaallelo.csv"target_csv_path="nba_all_elo.csv"response=requests.get(download_url)response.raise_for_status()# Check that the request was successfulwithopen(target_csv_path,"wb")asf:f.write(response.content)print("Download ready.")
72 chọn hàng với chỉ số vị trí
importrequestsdownload_url="https://raw.githubusercontent.com/fivethirtyeight/data/master/nba-elo/nbaallelo.csv"target_csv_path="nba_all_elo.csv"response=requests.get(download_url)response.raise_for_status()# Check that the request was successfulwithopen(target_csv_path,"wb")asf:f.write(response.content)print("Download ready.")
08, đó là
importrequestsdownload_url="https://raw.githubusercontent.com/fivethirtyeight/data/master/nba-elo/nbaallelo.csv"target_csv_path="nba_all_elo.csv"response=requests.get(download_url)response.raise_for_status()# Check that the request was successfulwithopen(target_csv_path,"wb")asf:f.write(response.content)print("Download ready.")
69. selects the row with the positional index
importrequestsdownload_url="https://raw.githubusercontent.com/fivethirtyeight/data/master/nba-elo/nbaallelo.csv"target_csv_path="nba_all_elo.csv"response=requests.get(download_url)response.raise_for_status()# Check that the request was successfulwithopen(target_csv_path,"wb")asf:f.write(response.content)print("Download ready.")
08, which is
importrequestsdownload_url="https://raw.githubusercontent.com/fivethirtyeight/data/master/nba-elo/nbaallelo.csv"target_csv_path="nba_all_elo.csv"response=requests.get(download_url)response.raise_for_status()# Check that the request was successfulwithopen(target_csv_path,"wb")asf:f.write(response.content)print("Download ready.")
69.
Được rồi, bạn đã sử dụng
$ conda install requests pandas matplotlib
89 và
$ conda install requests pandas matplotlib
90 trên các cấu trúc dữ liệu nhỏ. Bây giờ, nó thời gian để thực hành với một cái gì đó lớn hơn! Sử dụng phương thức truy cập dữ liệu để hiển thị hàng thứ hai đến cuối của bộ dữ liệu
0. Sau đó, mở rộng khối mã bên dưới để xem giải pháp:
Hàng thứ hai đến cuối cùng là hàng với chỉ số vị trí của
importrequestsdownload_url="https://raw.githubusercontent.com/fivethirtyeight/data/master/nba-elo/nbaallelo.csv"target_csv_path="nba_all_elo.csv"response=requests.get(download_url)response.raise_for_status()# Check that the request was successfulwithopen(target_csv_path,"wb")asf:f.write(response.content)print("Download ready.")
78. Bạn có thể hiển thị nó với
$ conda install requests pandas matplotlib
90:positional index of
importrequestsdownload_url="https://raw.githubusercontent.com/fivethirtyeight/data/master/nba-elo/nbaallelo.csv"target_csv_path="nba_all_elo.csv"response=requests.get(download_url)response.raise_for_status()# Check that the request was successfulwithopen(target_csv_path,"wb")asf:f.write(response.content)print("Download ready.")
importrequestsdownload_url="https://raw.githubusercontent.com/fivethirtyeight/data/master/nba-elo/nbaallelo.csv"target_csv_path="nba_all_elo.csv"response=requests.get(download_url)response.raise_for_status()# Check that the request was successfulwithopen(target_csv_path,"wb")asf:f.write(response.content)print("Download ready.")
65:
importrequestsdownload_url="https://raw.githubusercontent.com/fivethirtyeight/data/master/nba-elo/nbaallelo.csv"target_csv_path="nba_all_elo.csv"response=requests.get(download_url)response.raise_for_status()# Check that the request was successfulwithopen(target_csv_path,"wb")asf:f.write(response.content)print("Download ready.")
66 chọn hàng với chỉ mục nhãn
importrequestsdownload_url="https://raw.githubusercontent.com/fivethirtyeight/data/master/nba-elo/nbaallelo.csv"target_csv_path="nba_all_elo.csv"response=requests.get(download_url)response.raise_for_status()# Check that the request was successfulwithopen(target_csv_path,"wb")asf:f.write(response.content)print("Download ready.")
importrequestsdownload_url="https://raw.githubusercontent.com/fivethirtyeight/data/master/nba-elo/nbaallelo.csv"target_csv_path="nba_all_elo.csv"response=requests.get(download_url)response.raise_for_status()# Check that the request was successfulwithopen(target_csv_path,"wb")asf:f.write(response.content)print("Download ready.")
65:
importrequestsdownload_url="https://raw.githubusercontent.com/fivethirtyeight/data/master/nba-elo/nbaallelo.csv"target_csv_path="nba_all_elo.csv"response=requests.get(download_url)response.raise_for_status()# Check that the request was successfulwithopen(target_csv_path,"wb")asf:f.write(response.content)print("Download ready.")
66 chọn hàng với chỉ mục nhãn
importrequestsdownload_url="https://raw.githubusercontent.com/fivethirtyeight/data/master/nba-elo/nbaallelo.csv"target_csv_path="nba_all_elo.csv"response=requests.get(download_url)response.raise_for_status()# Check that the request was successfulwithopen(target_csv_path,"wb")asf:f.write(response.content)print("Download ready.")
67.
importrequestsdownload_url="https://raw.githubusercontent.com/fivethirtyeight/data/master/nba-elo/nbaallelo.csv"target_csv_path="nba_all_elo.csv"response=requests.get(download_url)response.raise_for_status()# Check that the request was successfulwithopen(target_csv_path,"wb")asf:f.write(response.content)print("Download ready.")
68 chọn các hàng với các chỉ số nhãn từ
importrequestsdownload_url="https://raw.githubusercontent.com/fivethirtyeight/data/master/nba-elo/nbaallelo.csv"target_csv_path="nba_all_elo.csv"response=requests.get(download_url)response.raise_for_status()# Check that the request was successfulwithopen(target_csv_path,"wb")asf:f.write(response.content)print("Download ready.")
69 đến
importrequestsdownload_url="https://raw.githubusercontent.com/fivethirtyeight/data/master/nba-elo/nbaallelo.csv"target_csv_path="nba_all_elo.csv"response=requests.get(download_url)response.raise_for_status()# Check that the request was successfulwithopen(target_csv_path,"wb")asf:f.write(response.content)print("Download ready.")
importrequestsdownload_url="https://raw.githubusercontent.com/fivethirtyeight/data/master/nba-elo/nbaallelo.csv"target_csv_path="nba_all_elo.csv"response=requests.get(download_url)response.raise_for_status()# Check that the request was successfulwithopen(target_csv_path,"wb")asf:f.write(response.content)print("Download ready.")
72 chọn hàng với chỉ số vị trí
importrequestsdownload_url="https://raw.githubusercontent.com/fivethirtyeight/data/master/nba-elo/nbaallelo.csv"target_csv_path="nba_all_elo.csv"response=requests.get(download_url)response.raise_for_status()# Check that the request was successfulwithopen(target_csv_path,"wb")asf:f.write(response.content)print("Download ready.")
08, đó là
importrequestsdownload_url="https://raw.githubusercontent.com/fivethirtyeight/data/master/nba-elo/nbaallelo.csv"target_csv_path="nba_all_elo.csv"response=requests.get(download_url)response.raise_for_status()# Check that the request was successfulwithopen(target_csv_path,"wb")asf:f.write(response.content)print("Download ready.")
69.
Được rồi, bạn đã sử dụng
$ conda install requests pandas matplotlib
89 và
$ conda install requests pandas matplotlib
90 trên các cấu trúc dữ liệu nhỏ. Bây giờ, nó thời gian để thực hành với một cái gì đó lớn hơn! Sử dụng phương thức truy cập dữ liệu để hiển thị hàng thứ hai đến cuối của bộ dữ liệu
0. Sau đó, mở rộng khối mã bên dưới để xem giải pháp:
Hàng thứ hai đến cuối cùng là hàng với chỉ số vị trí của
importrequestsdownload_url="https://raw.githubusercontent.com/fivethirtyeight/data/master/nba-elo/nbaallelo.csv"target_csv_path="nba_all_elo.csv"response=requests.get(download_url)response.raise_for_status()# Check that the request was successfulwithopen(target_csv_path,"wb")asf:f.write(response.content)print("Download ready.")
78. Bạn có thể hiển thị nó với
$ conda install requests pandas matplotlib
90:
Bạn sẽ thấy đầu ra là đối tượng
$ conda install requests pandas matplotlib
27.
Đối với >>> import numpy as np
>>> nba.describe(include=object)
9, các phương thức truy cập dữ liệu $ conda install requests pandas matplotlib
89 và $ conda install requests pandas matplotlib
90 cũng chấp nhận tham số thứ hai. Mặc dù tham số đầu tiên chọn các hàng dựa trên các chỉ số, tham số thứ hai chọn các cột. Bạn có thể sử dụng các tham số này với nhau để chọn một tập hợp con của các hàng và cột từ >>> import numpy as np
>>> nba.describe(include=object)
9 của bạn:
Lưu ý rằng bạn tách các tham số bằng dấu phẩy (
importrequestsdownload_url="https://raw.githubusercontent.com/fivethirtyeight/data/master/nba-elo/nbaallelo.csv"target_csv_path="nba_all_elo.csv"response=requests.get(download_url)response.raise_for_status()# Check that the request was successfulwithopen(target_csv_path,"wb")asf:f.write(response.content)print("Download ready.")
85). Tham số đầu tiên,
importrequestsdownload_url="https://raw.githubusercontent.com/fivethirtyeight/data/master/nba-elo/nbaallelo.csv"target_csv_path="nba_all_elo.csv"response=requests.get(download_url)response.raise_for_status()# Check that the request was successfulwithopen(target_csv_path,"wb")asf:f.write(response.content)print("Download ready.")
86 cho biết để chọn tất cả các hàng giữa hai nhãn đó. Tham số thứ hai xuất hiện sau dấu phẩy và nói để chọn cột
importrequestsdownload_url="https://raw.githubusercontent.com/fivethirtyeight/data/master/nba-elo/nbaallelo.csv"target_csv_path="nba_all_elo.csv"response=requests.get(download_url)response.raise_for_status()# Check that the request was successfulwithopen(target_csv_path,"wb")asf:f.write(response.content)print("Download ready.")
49.query your data. For example, you can create a new
importrequestsdownload_url="https://raw.githubusercontent.com/fivethirtyeight/data/master/nba-elo/nbaallelo.csv"target_csv_path="nba_all_elo.csv"response=requests.get(download_url)response.raise_for_status()# Check that the request was successfulwithopen(target_csv_path,"wb")asf:f.write(response.content)print("Download ready.")
89 và
importrequestsdownload_url="https://raw.githubusercontent.com/fivethirtyeight/data/master/nba-elo/nbaallelo.csv"target_csv_path="nba_all_elo.csv"response=requests.get(download_url)response.raise_for_status()# Check that the request was successfulwithopen(target_csv_path,"wb")asf:f.write(response.content)print("Download ready.")
90. Bạn chỉ quan tâm đến tên của các đội và điểm số, vì vậy cũng chọn các yếu tố đó. Mở rộng khối mã bên dưới để xem giải pháp:
Đầu tiên, xác định các hàng bạn muốn xem, sau đó liệt kê các cột có liên quan:
>>>
>>> len(nba)126314>>> nba.shape(126314, 23)
1
Bạn sử dụng
$ conda install requests pandas matplotlib
89 cho chỉ mục nhãn và dấu phẩy (
importrequestsdownload_url="https://raw.githubusercontent.com/fivethirtyeight/data/master/nba-elo/nbaallelo.csv"target_csv_path="nba_all_elo.csv"response=requests.get(download_url)response.raise_for_status()# Check that the request was successfulwithopen(target_csv_path,"wb")asf:f.write(response.content)print("Download ready.")
85) để tách hai tham số của bạn.
Bạn sẽ thấy một phần nhỏ trong bộ dữ liệu khá lớn của bạn:
9 để giúp bạn trả lời các câu hỏi về bộ dữ liệu của mình.
Truy vấn dữ liệu của bạn
>>>
>>> len(nba)126314>>> nba.shape(126314, 23)
3
Bạn đã thấy cách truy cập các tập hợp con của một bộ dữ liệu khổng lồ dựa trên các chỉ số của nó. Bây giờ, bạn sẽ chọn các hàng dựa trên các giá trị trong các cột dữ liệu của bạn để truy vấn dữ liệu của bạn. Ví dụ: bạn có thể tạo một
9 mới của bạn chỉ bao gồm các hàng trong đó giá trị trong cột
importrequestsdownload_url="https://raw.githubusercontent.com/fivethirtyeight/data/master/nba-elo/nbaallelo.csv"target_csv_path="nba_all_elo.csv"response=requests.get(download_url)response.raise_for_status()# Check that the request was successfulwithopen(target_csv_path,"wb")asf:f.write(response.content)print("Download ready.")
98 lớn hơn
importrequestsdownload_url="https://raw.githubusercontent.com/fivethirtyeight/data/master/nba-elo/nbaallelo.csv"target_csv_path="nba_all_elo.csv"response=requests.get(download_url)response.raise_for_status()# Check that the request was successfulwithopen(target_csv_path,"wb")asf:f.write(response.content)print("Download ready.")
99.
Bạn cũng có thể chọn các hàng trong đó một trường cụ thể không phải là NULL:
Điều này có thể hữu ích nếu bạn muốn tránh bất kỳ giá trị bị thiếu trong một cột. Bạn cũng có thể sử dụng
Bạn cũng có thể kết hợp nhiều tiêu chí và truy vấn dữ liệu của bạn. Để làm điều này, hãy chắc chắn đặt từng cái vào dấu ngoặc đơn và sử dụng các toán tử logic
Trong các ví dụ trên, bạn chỉ làm trầy xước bề mặt của các hàm tổng hợp có sẵn cho bạn trong thư viện Pandas Python. Để xem thêm các ví dụ về cách sử dụng chúng, hãy xem Pandas Groupby: Hướng dẫn của bạn để nhóm dữ liệu trong Python.
Thao tác cột
Bạn cần phải biết cách thao tác các cột dữ liệu của bạn trong các giai đoạn khác nhau của quy trình phân tích dữ liệu. Bạn có thể thêm và thả các cột như là một phần của giai đoạn làm sạch dữ liệu ban đầu, hoặc sau đó dựa trên những hiểu biết về phân tích của bạn.manipulate your dataset’s columns in different phases of the data analysis process. You can add and drop columns as part of the initial data cleaning phase, or later based on the insights of your analysis.
Bộ dữ liệu của bạn có thể chứa các cột mà bạn không cần. Ví dụ, xếp hạng ELO có thể là một khái niệm hấp dẫn đối với một số người, nhưng bạn đã giành được phân tích chúng trong hướng dẫn này. Bạn có thể xóa bốn cột liên quan đến ELO:
9 mới, bằng cách gọi một hàm tạo hoặc đọc tệp CSV, Pandas gán một loại dữ liệu cho mỗi cột dựa trên các giá trị của nó. Mặc dù nó làm một công việc khá tốt, nhưng nó không hoàn hảo. Nếu bạn chọn loại dữ liệu phù hợp cho các cột của mình lên phía trước, thì bạn có thể cải thiện đáng kể hiệu suất mã của bạn.data type to each column based on its values. While it does a pretty good job, it’s not perfect. If you choose the right data type for your columns up front, then you can significantly improve your code’s performance.
8, bạn sẽ xác thực dễ dàng hơn và tiết kiệm một tấn bộ nhớ, vì gấu trúc sẽ chỉ sử dụng các giá trị duy nhất bên trong. Tỷ lệ của tổng giá trị so với các giá trị duy nhất, bạn sẽ có nhiều tiết kiệm không gian mà bạn sẽ nhận được. has a few advantages over unstructured text. When you specify the
8 data type, you make validation easier and save a ton of memory, as Pandas will only use the unique values internally. The higher the ratio of total values to unique values, the more space savings you’ll get.
Bạn thường gặp các bộ dữ liệu với quá nhiều cột văn bản. Một kỹ năng thiết yếu cho các nhà khoa học dữ liệu có khả năng phát hiện các cột mà họ có thể chuyển đổi thành loại dữ liệu hiệu suất hơn.
Hãy dành một chút thời gian để thực hành điều này ngay bây giờ. Tìm một cột khác trong bộ dữ liệu
53 để kiểm tra việc sử dụng bộ nhớ.performance in mind as you continue to explore your datasets.
Khi bạn làm việc với các bộ dữ liệu lớn hơn, tiết kiệm bộ nhớ trở nên đặc biệt quan trọng. Hãy chắc chắn để ghi nhớ hiệu suất khi bạn tiếp tục khám phá bộ dữ liệu của bạn.
Dữ liệu làm sạch
Bạn có thể ngạc nhiên khi thấy phần này quá muộn trong hướng dẫn! Thông thường, bạn có một cái nhìn quan trọng về bộ dữ liệu của mình để khắc phục mọi vấn đề trước khi bạn chuyển sang phân tích tinh vi hơn. Tuy nhiên, trong hướng dẫn này, bạn sẽ dựa vào các kỹ thuật mà bạn đã học được trong các phần trước để làm sạch bộ dữ liệu của bạn.
Giá trị bị mấtNull
values often indicate a problem in the data-gathering process. They can make several analysis techniques, like different types of machine learning, difficult or even impossible.
4 cho thấy có bao nhiêu giá trị không null mà một cột chứa? Lý do tại sao đây là thông tin quan trọng. Các giá trị null thường chỉ ra một vấn đề trong quá trình thu thập dữ liệu. Họ có thể thực hiện một số kỹ thuật phân tích, như các loại học máy khác nhau, khó khăn hoặc thậm chí là không thể.
Bạn có thể sử dụng >>> import pandas as pd
>>> nba = pd.read_csv("nba_all_elo.csv")
>>> type(nba)
<class 'pandas.core.frame.DataFrame'>
53 để kiểm tra việc sử dụng bộ nhớ.
Khi bạn làm việc với các bộ dữ liệu lớn hơn, tiết kiệm bộ nhớ trở nên đặc biệt quan trọng. Hãy chắc chắn để ghi nhớ hiệu suất khi bạn tiếp tục khám phá bộ dữ liệu của bạn. can be even more dangerous than missing values. Often, you can perform your data analysis as expected, but the results you get are peculiar. This is especially important if your dataset is enormous or used manual entry. Invalid values are often more challenging to
detect, but you can implement some sanity checks with queries and aggregations.
Dữ liệu làm sạch
Bạn có thể ngạc nhiên khi thấy phần này quá muộn trong hướng dẫn! Thông thường, bạn có một cái nhìn quan trọng về bộ dữ liệu của mình để khắc phục mọi vấn đề trước khi bạn chuyển sang phân tích tinh vi hơn. Tuy nhiên, trong hướng dẫn này, bạn sẽ dựa vào các kỹ thuật mà bạn đã học được trong các phần trước để làm sạch bộ dữ liệu của bạn.
4 cho thấy có bao nhiêu giá trị không null mà một cột chứa? Lý do tại sao đây là thông tin quan trọng. Các giá trị null thường chỉ ra một vấn đề trong quá trình thu thập dữ liệu. Họ có thể thực hiện một số kỹ thuật phân tích, như các loại học máy khác nhau, khó khăn hoặc thậm chí là không thể.
64 chứa các giá trị null cho phần lớn các hàng của nó:
Đầu ra này cho thấy cột >>> import pandas as pd
>>> nba = pd.read_csv("nba_all_elo.csv")
>>> type(nba)
<class 'pandas.core.frame.DataFrame'>
64 chỉ có 5424 giá trị không null. Điều đó có nghĩa là hơn 120.000 hàng tập dữ liệu của bạn có các giá trị null trong cột này.
Đôi khi, cách dễ nhất để đối phó với các hồ sơ có chứa các giá trị bị thiếu là bỏ qua chúng. Bạn có thể xóa tất cả các hàng có giá trị bị thiếu bằng
0 của bạn, bởi vì nó không phải là vấn đề đối với một trò chơi thiếu ghi chú. Nhưng nếu bộ dữ liệu của bạn chứa một triệu hồ sơ hợp lệ và một trăm dữ liệu liên quan bị thiếu, thì việc bỏ các bản ghi không đầy đủ có thể là một giải pháp hợp lý.
>>>
>>> pd.set_option("display.precision",2)
4
Bạn cũng có thể bỏ các cột có vấn đề nếu chúng không liên quan đến phân tích của bạn. Để làm điều này, hãy sử dụng
importrequestsdownload_url="https://raw.githubusercontent.com/fivethirtyeight/data/master/nba-elo/nbaallelo.csv"target_csv_path="nba_all_elo.csv"response=requests.get(download_url)response.raise_for_status()# Check that the request was successfulwithopen(target_csv_path,"wb")asf:f.write(response.content)print("Download ready.")
importrequestsdownload_url="https://raw.githubusercontent.com/fivethirtyeight/data/master/nba-elo/nbaallelo.csv"target_csv_path="nba_all_elo.csv"response=requests.get(download_url)response.raise_for_status()# Check that the request was successfulwithopen(target_csv_path,"wb")asf:f.write(response.content)print("Download ready.")
importrequestsdownload_url="https://raw.githubusercontent.com/fivethirtyeight/data/master/nba-elo/nbaallelo.csv"target_csv_path="nba_all_elo.csv"response=requests.get(download_url)response.raise_for_status()# Check that the request was successfulwithopen(target_csv_path,"wb")asf:f.write(response.content)print("Download ready.")
importrequestsdownload_url="https://raw.githubusercontent.com/fivethirtyeight/data/master/nba-elo/nbaallelo.csv"target_csv_path="nba_all_elo.csv"response=requests.get(download_url)response.raise_for_status()# Check that the request was successfulwithopen(target_csv_path,"wb")asf:f.write(response.content)print("Download ready.")
Mặc dù nó đơn giản nhất để kết hợp dữ liệu dựa trên chỉ mục, nhưng nó không phải là khả năng duy nhất. Bạn có thể sử dụng >>> len(nba)
126314
>>> nba.shape
(126314, 23)
02 để thực hiện thao tác tham gia tương tự như từ SQL:
9 lớn hơn không chỉ chứa dữ liệu thành phố, mà cả dân số và lục địa của các quốc gia tương ứng: is one of the things
that works much better in a Jupyter notebook than in a terminal, so go ahead and fire one up. If you need help getting started, then check out Jupyter Notebook: An Introduction. You can also access the Jupyter notebook that contains the examples from this tutorial by clicking the link below:
Lưu ý rằng kết quả chỉ chứa các thành phố nơi đất nước được biết đến và xuất hiện trong
Trực quan hóa dữ liệu là một trong những điều hoạt động tốt hơn nhiều trong một máy tính xách tay Jupyter so với trong một thiết bị đầu cuối, vì vậy hãy tiếp tục và kích hoạt một chiếc. Nếu bạn cần trợ giúp bắt đầu, sau đó xem Jupyter Notebook: Giới thiệu. Bạn cũng có thể truy cập sổ ghi chép Jupyter có chứa các ví dụ từ hướng dẫn này bằng cách nhấp vào liên kết bên dưới:
Bao gồm dòng này để hiển thị các sơ đồ trực tiếp trong sổ ghi chép:
Điều này cho thấy một âm mưu dòng với một số đỉnh và hai thung lũng đáng chú ý vào khoảng năm 2000 và 2010:
Bạn cũng có thể tạo các loại lô khác, như một lô thanh:
Điều này sẽ cho thấy các nhượng quyền thương mại với nhiều trò chơi được chơi nhiều nhất:
Lakers đang dẫn đầu Celtics bởi một cạnh tối thiểu, và có sáu đội tiếp theo với số lượng trò chơi trên 5000.
Bây giờ hãy thử một bài tập phức tạp hơn. Năm 2013, Miami Heat đã giành chức vô địch. Tạo một cốt truyện cho thấy số lượng chiến thắng và thua lỗ của họ trong mùa giải đó. Sau đó, mở rộng khối mã để xem giải pháp:exploring a dataset with the Pandas Python library. You saw how you could access specific rows and columns to tame even the largest of datasets. Speaking of taming, you’ve also seen multiple techniques to prepare and clean your data, by specifying the data type of columns, dealing with missing values, and more.
You’ve even created queries, aggregations, and plots based on those.
Đầu tiên, bạn xác định một tiêu chí chỉ bao gồm các trò chơi Heat Heat từ năm 2013. Sau đó, bạn tạo ra một cốt truyện theo cách tương tự như bạn đã thấy ở trên:
Ở đây, những gì một chiếc bánh vô địch trông như thế nào:
Các lát chiến thắng lớn hơn đáng kể so với lát thua lỗ!
Đôi khi, các con số tự nói lên, nhưng thường là một biểu đồ giúp rất nhiều với việc truyền đạt những hiểu biết của bạn. Để tìm hiểu thêm về trực quan hóa dữ liệu của bạn, hãy xem trực quan hóa dữ liệu tương tác trong Python với Bokeh.
Sự kết luận
Trong hướng dẫn này, bạn đã học cách bắt đầu khám phá một bộ dữ liệu với thư viện Pandas Python. Bạn đã thấy cách bạn có thể truy cập các hàng và cột cụ thể để chế ngự ngay cả các bộ dữ liệu lớn nhất. Nói về việc thuần hóa, bạn cũng đã thấy nhiều kỹ thuật để chuẩn bị và làm sạch dữ liệu của bạn, bằng cách chỉ định loại dữ liệu của cột, xử lý các giá trị bị thiếu và hơn thế nữa. Bạn thậm chí đã tạo ra các truy vấn, tập hợp và âm mưu dựa trên những câu hỏi đó.
Xem bây giờ hướng dẫn này có một khóa học video liên quan được tạo bởi nhóm Python thực sự. Xem cùng với hướng dẫn bằng văn bản để hiểu sâu hơn về sự hiểu biết của bạn: Khám phá bộ dữ liệu của bạn với gấu trúc This tutorial has a related video course created by the Real Python team. Watch it together with the written tutorial to deepen your understanding: Explore Your Dataset With Pandas
Dataset Python là gì?
Một bộ dữ liệu là thùng chứa dữ liệu cơ bản trong PYMVPA. Nó đóng vai trò là hình thức lưu trữ dữ liệu chính, nhưng cũng là một thùng chứa phổ biến cho kết quả được trả về bởi hầu hết các thuật toán.the basic data container in PyMVPA. It serves as the primary form of data storage, but also as a common container for results returned by most algorithms.
DataFrame có phải là bộ dữ liệu không?
Trong scala và java, một khung dữ liệu được thể hiện bằng một bộ dữ liệu của hàng s. Trong API Scala, DataFrame chỉ đơn giản là một bí danh của tập dữ liệu [hàng]. Trong khi, trong API Java, người dùng cần sử dụng tập dữ liệu để biểu diễn DataFrame. Trong suốt tài liệu này, chúng tôi thường sẽ đề cập đến các bộ dữ liệu Scala/Java của hàng S là DataFrames.. In the Scala API, DataFrame is simply a type alias of Dataset[Row] . While, in Java API, users need to use Dataset to represent a DataFrame . Throughout this document, we will often refer to Scala/Java Datasets of Row s as DataFrames.
DataSet hay DataFrame có tốt hơn không?
RDD - API RDD chậm hơn để thực hiện các hoạt động nhóm và tổng hợp đơn giản. DataFrame - API DataFrame rất dễ sử dụng. Nó nhanh hơn để phân tích khám phá, tạo ra số liệu thống kê tổng hợp trên các tập dữ liệu lớn. Bộ dữ liệu - Trong tập dữ liệu, việc thực hiện hoạt động tổng hợp trên nhiều tập dữ liệu sẽ nhanh hơn.
DataFrame trong Python với ví dụ là gì?
DataFrame là gì? Một khung dữ liệu gấu trúc là cấu trúc dữ liệu 2 chiều, như mảng 2 chiều hoặc bảng có hàng và cột.a 2 dimensional data structure, like a 2 dimensional array, or a table with rows and columns.
DataFrame là gì?
DataFrame là gì?DataFrame là một cấu trúc dữ liệu tổ chức dữ liệu thành bảng 2 chiều của các hàng và cột, giống như bảng tính.DataFrames là một trong những cấu trúc dữ liệu phổ biến nhất được sử dụng trong các phân tích dữ liệu hiện đại vì chúng là một cách linh hoạt và trực quan để lưu trữ và làm việc với dữ liệu.a data structure that organizes data into a 2-dimensional table of rows and columns, much like a spreadsheet. DataFrames are one of the most common data structures used in modern data analytics because they are a flexible and intuitive way of storing and working with data.
Dataset có nhanh hơn DataFrame không?
DataFrames cung cấp API nhanh chóng để thực hiện các hoạt động tổng hợp.Các RDD chậm hơn cả DataFrames và bộ dữ liệu để thực hiện các hàm đơn giản như nhóm dữ liệu.Bộ dữ liệu nhanh hơn RDD nhưng chậm hơn một chút so với DataFrames.Do đó, nó thực hiện tổng hợp nhanh hơn RDD và bộ dữ liệu.The Dataset is faster than the RDDs but is a bit slower than Dataframes. Hence, it performs aggregation faster than RDD and the Dataset.