Đây là lý do tại sao Pandas là thư viện phân tích dữ liệu Python phổ biến nhất

Pandas là thư viện phân tích dữ liệu phổ biến nhất cho Python. Nó được sử dụng rộng rãi bởi các nhà phân tích dữ liệu, nhà khoa học dữ liệu và kỹ sư máy học.
Cùng với NumPy, đây là một trong những thư viện và công cụ phải biết đối với bất kỳ ai làm việc với dữ liệu và AI.
Trong bài viết này, chúng ta sẽ khám phá Pandas và các tính năng khiến nó trở nên phổ biến trong hệ sinh thái dữ liệu.
Pandas là gì?
Pandas là một thư viện phân tích dữ liệu cho Python. Điều này có nghĩa là nó được sử dụng để làm việc và thao tác dữ liệu từ bên trong mã Python của bạn. Với Pandas, bạn có thể đọc, thao tác, trực quan hóa, phân tích và lưu trữ dữ liệu một cách hiệu quả.
Cái tên ‘Pandas’ xuất phát từ việc ghép các từ Panel Data, một thuật ngữ kinh tế lượng đề cập đến dữ liệu thu được từ việc quan sát nhiều cá nhân theo thời gian. Pandas ban đầu được phát hành vào tháng 1 năm 2008 bởi Wes Kinney và kể từ đó nó đã phát triển trở thành thư viện phổ biến nhất cho trường hợp sử dụng của nó.
Trọng tâm của Pandas là hai cấu trúc dữ liệu thiết yếu mà bạn nên làm quen, Dataframes và Series. Khi bạn tạo hoặc tải một tập dữ liệu trong Pandas, nó sẽ được biểu diễn dưới dạng một trong hai cấu trúc dữ liệu đó.
Trong phần tiếp theo, chúng ta sẽ khám phá chúng là gì, chúng khác nhau như thế nào và khi nào sử dụng một trong số chúng là lý tưởng.
Cấu trúc dữ liệu chính
Như đã đề cập trước đó, tất cả dữ liệu trong Pandas được biểu diễn bằng một trong hai cấu trúc dữ liệu, Khung dữ liệu hoặc Chuỗi. Hai cấu trúc dữ liệu này được giải thích chi tiết bên dưới.
Khung dữ liệu
Khung dữ liệu mẫu này được tạo bằng cách sử dụng đoạn mã ở cuối phần này
Khung dữ liệu trong Pandas là cấu trúc dữ liệu hai chiều với các cột và hàng. Nó tương tự như bảng tính trong ứng dụng bảng tính của bạn hoặc bảng trong cơ sở dữ liệu quan hệ.
Nó được tạo thành từ các cột và mỗi cột đại diện cho một thuộc tính hoặc tính năng trong tập dữ liệu của bạn. Các cột này sau đó được tạo thành từ các giá trị riêng lẻ. Danh sách hoặc chuỗi giá trị riêng lẻ này được biểu diễn dưới dạng đối tượng Chuỗi. Chúng ta sẽ thảo luận chi tiết hơn về cấu trúc dữ liệu Sê-ri ở phần sau của bài viết này.
Các cột trong khung dữ liệu có thể có tên mô tả để chúng được phân biệt với nhau. Những tên này được chỉ định khi khung dữ liệu được tạo hoặc tải nhưng có thể dễ dàng đổi tên bất cứ lúc nào.
Các giá trị trong một cột phải thuộc cùng một loại dữ liệu, mặc dù các cột không nhất thiết phải chứa dữ liệu cùng loại. Điều này có nghĩa là một cột tên trong tập dữ liệu sẽ lưu trữ các chuỗi độc quyền. Nhưng cùng một tập dữ liệu có thể có các cột khác như tuổi lưu trữ số nguyên.
Các khung dữ liệu cũng có một chỉ mục được sử dụng để tham chiếu các hàng. Các giá trị trên các cột khác nhau nhưng có cùng chỉ mục tạo thành một hàng. Theo mặc định, các chỉ mục được đánh số nhưng có thể được gán lại cho phù hợp với tập dữ liệu. Trong ví dụ (hình trên, được mã hóa bên dưới), chúng tôi đặt cột chỉ mục thành cột ‘tháng’.
import pandas as pd sales_df = pd.DataFrame({ 'Month': ['January', 'February', 'March'], 'Jane Doe': [5000, 6000, 5500], 'John Doe': [4500, 6700, 6000] }) sales_df.set_index(['Month'], inplace=True) print(sales_df)
Loạt
Sê-ri ví dụ này được tạo bằng cách sử dụng mã ở cuối phần này
Như đã thảo luận trước đó, một Sê-ri được sử dụng để biểu thị một cột dữ liệu trong Pandas. Do đó, A Series là cấu trúc dữ liệu một chiều. Điều này trái ngược với Dataframe là hai chiều.
Mặc dù Sê-ri thường được sử dụng làm cột trong Khung dữ liệu, nhưng nó cũng có thể tự biểu thị một tập dữ liệu hoàn chỉnh, miễn là tập dữ liệu chỉ có một thuộc tính được ghi trong một cột. Hay đúng hơn, tập dữ liệu chỉ đơn giản là một danh sách các giá trị.
Vì Sê-ri chỉ đơn giản là một cột nên nó không cần phải có tên. Tuy nhiên, các giá trị trong Sê-ri được lập chỉ mục. Giống như chỉ mục của Khung dữ liệu, khung dữ liệu của Sê-ri có thể được sửa đổi từ cách đánh số mặc định.
Trong ví dụ (hình trên, được mã hóa bên dưới), chỉ mục đã được đặt thành các tháng khác nhau bằng cách sử dụng phương thức set_axis của đối tượng Pandas Series.
import pandas as pd total_sales = pd.Series([9500, 12700, 11500]) months = ['January', 'February', 'March'] total_sales = total_sales.set_axis(months) print(total_sales)
Đặc điểm của gấu trúc
Bây giờ bạn đã hiểu rõ về Pandas là gì và các cấu trúc dữ liệu chính mà nó sử dụng, chúng ta có thể bắt đầu thảo luận về các tính năng giúp Pandas trở thành một thư viện phân tích dữ liệu mạnh mẽ và do đó, cực kỳ phổ biến trong Khoa học dữ liệu và Máy học Hệ sinh thái.
#1. Thao tác dữ liệu
Các đối tượng Dataframe và Series có thể thay đổi. Bạn có thể thêm bớt các cột nếu cần. Ngoài ra, Pandas cho phép bạn thêm hàng và thậm chí hợp nhất các bộ dữ liệu.
Bạn có thể thực hiện các phép tính số, chẳng hạn như chuẩn hóa dữ liệu và so sánh logic theo từng yếu tố. Pandas cũng cho phép bạn nhóm dữ liệu và áp dụng các hàm tổng hợp như giá trị trung bình, trung bình, tối đa và tối thiểu. Điều này làm cho việc xử lý dữ liệu trong Pandas trở nên dễ dàng.
#2. Dọn dẹp dữ liệu
Dữ liệu thu được từ thế giới thực thường có các giá trị khiến nó khó xử lý hoặc không lý tưởng để phân tích hoặc sử dụng trong các mô hình máy học. Dữ liệu có thể thuộc loại dữ liệu sai, ở định dạng sai hoặc có thể bị thiếu hoàn toàn. Dù bằng cách nào, dữ liệu này cần được xử lý trước, được gọi là làm sạch, trước khi có thể sử dụng.
Pandas có các chức năng giúp bạn làm sạch dữ liệu của mình. Ví dụ: trong Pandas, bạn có thể xóa các hàng trùng lặp, loại bỏ các cột hoặc hàng bị thiếu dữ liệu và thay thế các giá trị bằng giá trị mặc định hoặc một số giá trị khác, chẳng hạn như giá trị trung bình của cột. Có nhiều chức năng và thư viện hơn hoạt động với Pandas để cho phép bạn làm sạch dữ liệu nhiều hơn.
#3. Trực quan hóa dữ liệu
Biểu đồ này đã được tạo bằng mã bên dưới phần này
Mặc dù nó không phải là thư viện trực quan hóa như Matplotlib, nhưng Pandas có chức năng tạo trực quan hóa dữ liệu cơ bản. Và mặc dù chúng là cơ bản, nhưng chúng vẫn hoàn thành công việc trong hầu hết các trường hợp.
Với Pandas, bạn có thể dễ dàng vẽ biểu đồ thanh, biểu đồ, ma trận phân tán và các loại biểu đồ khác. Kết hợp điều đó với một số thao tác dữ liệu bạn có thể thực hiện trong Python và bạn có thể tạo các hình ảnh trực quan thậm chí còn phức tạp hơn để hiểu rõ hơn về dữ liệu của mình.
import pandas as pd sales_df = pd.DataFrame({ 'Month': ['January', 'February', 'March'], 'Jane Doe': [5000, 6000, 5500], 'John Doe': [4500, 6700, 6000] }) sales_df.set_index(['Month'], inplace=True) sales_df.plot.line()
#4. Phân tích chuỗi thời gian
Pandas cũng hỗ trợ làm việc với dữ liệu được đánh dấu thời gian. Khi Pandas nhận ra một cột có giá trị ngày giờ, bạn có thể thực hiện nhiều thao tác trên cùng một cột hữu ích khi làm việc với dữ liệu chuỗi thời gian.
Chúng bao gồm nhóm các quan sát theo khoảng thời gian và áp dụng các hàm tổng hợp cho chúng, chẳng hạn như tổng hoặc trung bình hoặc nhận các quan sát sớm nhất hoặc mới nhất bằng cách sử dụng tối thiểu và tối đa. Tất nhiên, bạn có thể làm nhiều việc khác với dữ liệu chuỗi thời gian trong Pandas.
#5. Đầu vào/Đầu ra trong Pandas
Pandas có khả năng đọc dữ liệu từ các định dạng lưu trữ dữ liệu phổ biến nhất. Chúng bao gồm JSON, SQL Dumps và CSV. Bạn cũng có thể ghi dữ liệu vào tệp ở nhiều định dạng này.
Khả năng đọc và ghi vào các định dạng tệp dữ liệu khác nhau này cho phép Pandas tương tác liền mạch với các ứng dụng khác và xây dựng các đường dẫn dữ liệu tích hợp tốt với Pandas. Đây là một trong những lý do tại sao Pandas được nhiều nhà phát triển sử dụng rộng rãi.
#6. Tích hợp với các thư viện khác
Pandas cũng có một hệ sinh thái phong phú gồm các công cụ và thư viện được xây dựng dựa trên nó để bổ sung cho chức năng của nó. Điều này làm cho nó trở thành một thư viện mạnh mẽ và hữu ích hơn.
Các công cụ trong hệ sinh thái Pandas tăng cường chức năng của nó trên các lĩnh vực khác nhau, bao gồm làm sạch dữ liệu, trực quan hóa, học máy, đầu vào/đầu ra và song song hóa. Pandas duy trì sổ đăng ký các công cụ như vậy trong tài liệu của họ.
Cân nhắc về hiệu suất và hiệu quả trong Pandas
Mặc dù Pandas tỏa sáng trong hầu hết các hoạt động, nhưng nó có thể rất chậm. Mặt tốt là bạn có thể tối ưu hóa mã của mình và cải thiện tốc độ của nó. Để làm điều này, bạn phải hiểu Pandas được xây dựng như thế nào.
Pandas được xây dựng trên NumPy, một thư viện Python phổ biến để tính toán số và khoa học. Do đó, giống như NumPy, Pandas hoạt động hiệu quả hơn khi các hoạt động được véc tơ hóa thay vì chọn trên các ô hoặc hàng riêng lẻ bằng cách sử dụng các vòng lặp.
Vectorization là một hình thức song song hóa trong đó cùng một thao tác được áp dụng cho nhiều điểm dữ liệu cùng một lúc. Điều này được gọi là SIMD – Một lệnh, Nhiều dữ liệu. Tận dụng các hoạt động được vector hóa sẽ cải thiện đáng kể tốc độ và hiệu suất của Pandas.
Bởi vì chúng sử dụng các mảng NumPy bên trong, cấu trúc dữ liệu DataFrame và Sê-ri nhanh hơn các từ điển và danh sách thay thế của chúng.
Việc triển khai Pandas mặc định chỉ chạy trên một lõi CPU. Một cách khác để tăng tốc mã của bạn là sử dụng các thư viện cho phép Pandas sử dụng tất cả các lõi CPU có sẵn. Chúng bao gồm Dask, Vaex, Modin và IPython.
Cộng đồng và Tài nguyên
Là một thư viện phổ biến của ngôn ngữ lập trình phổ biến nhất, Pandas có một cộng đồng lớn người dùng và cộng tác viên. Kết quả là, có rất nhiều tài nguyên để sử dụng để học cách sử dụng nó. Chúng bao gồm tài liệu chính thức của Pandas. Nhưng cũng có vô số khóa học, hướng dẫn và sách để học hỏi.
Ngoài ra còn có các cộng đồng trực tuyến trên các nền tảng như Reddit trong các subreddits r/Python và r/Data Science để đặt câu hỏi và nhận câu trả lời. Là một thư viện mã nguồn mở, bạn có thể báo cáo sự cố trên GitHub và thậm chí đóng góp mã.
Từ cuối cùng
Pandas cực kỳ hữu ích và mạnh mẽ như một thư viện khoa học dữ liệu. Trong bài viết này, tôi đã cố gắng giải thích mức độ phổ biến của nó bằng cách khám phá các tính năng giúp nó trở thành công cụ cần thiết cho các nhà khoa học dữ liệu và lập trình viên.
Tiếp theo, hãy xem cách tạo Pandas DataFrame.