Thao tác dữ liệu trong Python Pandas
Trong chương trước, chúng ta đã đi sâu vào chi tiết về NumPy và đối tượng Show
Như chúng ta đã thấy, cấu trúc dữ liệu Trong chương này, chúng ta sẽ tập trung vào cơ chế sử dụng Cài đặt và sử dụng PandasViệc cài đặt Pandas trên hệ thống của bạn yêu cầu phải cài đặt NumPy và nếu xây dựng thư viện từ nguồn, yêu cầu các công cụ thích hợp để biên dịch các nguồn C và Cython mà Pandas được xây dựng trên đó. Chi tiết về cài đặt này có thể được tìm thấy trong tài liệu Pandas. Nếu bạn đã làm theo lời khuyên được nêu trong Lời nói đầu và sử dụng ngăn xếp Anaconda, thì bạn đã cài đặt Pandas Khi Pandas được cài đặt, bạn có thể nhập nó và kiểm tra phiên bản Trong 1] import pandas pandas.__version__ Ra[1] '0.18.1' Giống như chúng tôi thường nhập NumPy dưới bí danh '0.18.1'3, chúng tôi sẽ nhập Pandas dưới bí danh '0.18.1'4 Trong 2] import pandas as pd Quy ước nhập khẩu này sẽ được sử dụng trong suốt phần còn lại của cuốn sách này Nhắc nhở về Tài liệu tích hợpKhi bạn đọc qua chương này, đừng quên rằng IPython cung cấp cho bạn khả năng khám phá nhanh nội dung của một gói (bằng cách sử dụng tính năng hoàn thành tab) cũng như tài liệu về các chức năng khác nhau (sử dụng ký tự '0.18.1'5). (Tham khảo lại Trợ giúp và Tài liệu trong IPython nếu bạn cần xem lại phần này. ) Ví dụ: để hiển thị tất cả nội dung của không gian tên gấu trúc, bạn có thể nhập In [3]: pd.<TAB> Và để hiển thị tài liệu tích hợp của Pandas, bạn có thể sử dụng tài liệu này In [4]: pd? Tài liệu chi tiết hơn, cùng với hướng dẫn và các tài nguyên khác, có thể được tìm thấy tại http. //gấu trúc. pydata. tổ chức/ Pandas được Wes McKinney phát triển tại quỹ phòng hộ AQR để cho phép phân tích nhanh dữ liệu tài chính. Pandas là một phần mở rộng của NumPy hỗ trợ các hoạt động được vector hóa cho phép thao tác nhanh thông tin tài chính Tôi sẽ sử dụng dữ liệu của công ty do hộp cát dành cho nhà phát triển Intrinio cung cấp. Nếu muốn làm theo, bạn có thể tìm thấy mã và dữ liệu trên Phân tích Alpha Github Repo ________số 8_______
Làm cho dữ liệu của bạn gọn gàngMặc dù không cần thiết cho những ví dụ đơn giản này, nhưng tôi muốn giới thiệu Dữ liệu ngăn nắp. Khi làm việc với các tập dữ liệu lớn và đặc biệt là để phân tích nhân tố, bạn sẽ muốn làm cho cuộc sống của mình dễ dàng hơn và sắp xếp gọn gàng tập dữ liệu của mình bằng cách sử dụng pandas. tan chảy. Nó làm cho dữ liệu dễ phân tích hơn và thường hiệu quả hơn. Đối với những người quan tâm, có một bài viết tuyệt vời trên phương tiện về Bộ dữ liệu dọn dẹp trong Python Hoạt động chuỗi trong PandasThông thường, chúng ta sẽ cần thao tác với dữ liệu chuỗi được định dạng không chính xác. Pandas cung cấp [hoạt động chuỗi được vector hóa/trăn-cho-tài chính#vectorization). Đối với hầu hết các hoạt động chuỗi, bạn sẽ cần phải làm quen với Phương thứcMô tảgấu trúc. Loạt. str. chuỗi splitSplits trên các dấu phân cách được chỉ định. Loạt. str. replaceThay thế chuỗi khi khớp chuỗi hoặc regexpandas. Loạt. str. extractExtracts chuỗi trên khớp nhóm regexHãy thực hiện thao tác trích xuất ví dụ bằng cách kết hợp một số dữ liệu hiện có của chúng ta lại với nhau
Hoạt động nhóm. Tách-Áp dụng-Kết hợpHoạt động nhóm có thể được chia thành ba bước
Trước khi chúng tôi sử dụng gấu trúc để nhóm và sửa đổi dữ liệu của mình, hãy xem cách chúng tôi có thể hoàn thành việc đếm số lượng công ty trong từng lĩnh vực bằng cách sử dụng python
nhómgấu trúc. Khung dữ liệu. groupby cung cấp cho chúng tôi cách tốt hơn để nhóm dữ liệu. groupby trả về đối tượng DataFrameGroupBy hoặc đối tượng SeriesGroupBy . Những đối tượng này có thể được coi là một nhóm. Bạn có thể thấy bên dưới sector_group. các nhóm trả về một từ điển gồm các cặp khóa/giá trị là các cung và các hàng được liên kết của chúng. Xem bên dưới nhóm tài chính chứa các hàng ([1, 6, 8, 14, 23]) tương ứng
Để chỉ ra rằng đối tượng groupby chỉ là một bản thiết kế, chúng ta có thể sao chép get_group bằng cách sử dụng iloc
Tóm lại, groupby tạo một kế hoạch chi tiết cho phép chúng tôi chạy nhiều hoạt động hữu ích trên nhóm. Sử dụng đối tượng nhóm theo nhóm hiệu quả vì nó cho phép chúng ta có mối quan hệ một-nhiều liên quan đến việc tính giá trị nhóm Ngoài ra, chúng ta có thể sử dụng sức mạnh của Pandas và sử dụng lập chỉ mục boolean và phương pháp tổng hợp để trả về số lượng công ty trong từng lĩnh vực tổng hợpTập hợp lấy các giá trị và trả về một giá trị của thứ nguyên nhỏ hơn. Ví dụ: một hàm nhận vào một chuỗi và trả về một giá trị vô hướng duy nhất. Mọi tập hợp GroupBy ngầm hoặc rõ ràng đều có một cột nhóm, một cột tổng hợp và một cột chức năng. Các chức năng tổng hợp phổ biến được hiển thị bên dưới FunctionDescriptionmean()Tính giá trị trung bình của các nhómsum()Tính tổng các giá trị của nhómsize()Tính toán kích thước nhómcount()Tính số lượng các nhómstd()Độ lệch chuẩn của các nhómvar()Tính toán phương sai của các nhómsem()Sai số chuẩn của giá trị trung bình của các nhómdescribe()Tạo mô tả 0 1Chúng ta cũng có thể nhóm theo nhiều cột. Lưu ý rằng hàm tổng hợp được gọi tự động trên cột nhân viên vì đây là cột loại số duy nhất 2 3gấu trúc. cốt lõi. theo nhóm. Khung dữ liệu. agg cho phép chúng tôi thực hiện nhiều thao tác tổng hợp cùng một lúc bao gồm cả các thao tác tổng hợp do người dùng xác định 4 5chuyển đổiChuyển đổi trả về dữ liệu được thao tác có cùng kích thước với dữ liệu đã truyền. Có nhiều phương thức và chức năng theo ý của bạn để chuyển đổi dữ liệu, như hình bên dưới Phương thức/Chức năngDescriptionSeries. mapThay thế từng giá trị cho một sê-ri khác. applyInvoke một hàm theo nguyên tố trên một seriesDataFrame. applymapÁp dụng một chức năng theo nguyên tố cho một khung dữ liệuDataFrame. áp dụngGọi một chức năng trên mỗi cột hoặc hàngSeries. biến đổi Gọi một hàm trả về chuỗi giá trị được chuyển đổiDataFrame. biến đổi Gọi một hàm trả về khung dữ liệu của các giá trị được chuyển đổi. tan chảy Định hình lại một khung dữ liệu. Hữu ích cho việc vẽ đồ thị, hoạt động vector hóa và thu dọn dữ liệu. gấu trúc. pivot Định hình lại một khung dữ liệu. Về cơ bản là một hoạt động unmeltTrong ví dụ bên dưới, chúng tôi chuyển một hàm đã xác định find_percent và trả về chuỗi đã chuyển đổi 6 7Như với agg, chúng ta có thể truyền nhiều hàm, bao gồm cả hàm lambda 8 9Mặc dù chúng tôi không thể chuyển nhiều chức năng để áp dụng như chúng tôi có thể làm với biến đổi, nhưng chúng tôi có thể truy cập các cột khác bằng cách sử dụng áp dụng khi chúng tôi bị giới hạn với biến đổi. Một lần nữa, tốt nhất là biết những gì có sẵn cho bạn và sử dụng công cụ tốt nhất cho công việc tại thời điểm hiện tại 0 1lọcBộ lọc trả về một tập hợp con của dữ liệu gốc. Nó hoạt động tương tự như lập chỉ mục boolean ngoại trừ thay vì hoạt động trên các hàng riêng lẻ, nó hoạt động trên các nhóm riêng lẻ. Bộ lọc phải trả về giá trị Đúng hoặc Sai cho toàn bộ nhóm. Lĩnh vực dịch vụ là lĩnh vực duy nhất có hơn 1.000.000 nhân viên 2 3Bảng tổng hợpChúng tôi có thể tạo cùng một dữ liệu ở định dạng khác bằng cách sử dụng gấu trúc. trục_bảng 4 5tham gia dữ liệuChúng ta có thể nhanh chóng nối hai khung dữ liệu thông qua nối, hợp nhất và nối. Hợp nhất là chức năng cơ bản cho tất cả các hành vi tham gia/hợp nhất. Tham gia có các giá trị mặc định hơi khác và được cung cấp như một phương pháp thuận tiện Kỹ thuật thao tác dữ liệu trong Python là gì?Các phương pháp thao tác dữ liệu với Python . Lọc các giá trị trên cơ sở điều kiện đã cho. . Áp dụng một chức năng nhất định để tạo một biến mới hoặc thực hiện các hoạt động liên quan. . Sử dụng chức năng trục để tổng hợp trên cột mong muốn. . Chức năng của bảng chéo. . Hợp nhất 2 bảng. . Sắp xếp một bảng Python có tốt cho thao tác dữ liệu không?Python là một phần có giá trị trong hộp công cụ của nhà phân tích dữ liệu, vì nó được thiết kế riêng để thực hiện các tác vụ lặp đi lặp lại và thao tác dữ liệu và bất kỳ ai từng làm việc với lượng dữ liệu lớn đều biết .
Những lợi thế chính của Pandas trong thao tác dữ liệu là gì?1. 1. Sự miêu tả dữ liệu. Pandas cung cấp các hình thức biểu diễn dữ liệu cực kỳ hợp lý. . 1. 2. Viết ít hơn và hoàn thành nhiều việc hơn. . 1. 3. Một tập hợp các tính năng phong phú. . 1. 4. Xử lý hiệu quả dữ liệu lớn. . 1. 5. Làm cho dữ liệu linh hoạt và có thể tùy chỉnh. . 1. 6. Dành cho Python NumPy có được sử dụng để thao tác dữ liệu không?Thao tác dữ liệu trong Python gần như đồng nghĩa với thao tác mảng NumPy . ngay cả những công cụ mới hơn như Pandas (Chương 3) cũng được xây dựng xung quanh mảng NumPy. Phần này sẽ trình bày một số ví dụ về việc sử dụng thao tác mảng NumPy để truy cập dữ liệu và các mảng con, đồng thời để phân tách, định hình lại và nối các mảng. |