Xin chào các bạn, hôm nay mình sẽ chia sẻ một bài viết về chủ đề làm sạch dữ liệu, như mọi người cũng biết bước làm sạch dữ liệu cực kì quan trọng trước khi đưa vào phân tích dữ liệu hoặc huấn luyện mô hình. Mình tình cờ đọc được bài viết sử dụng thư viện có sẵn để làm sạch dữ liệu và mình thấy nó khá là hay và còn rút ngắn được thời gian làm sạch dữ liệu. Bây giờ chúng ta cùng nhau tìm hiểu nhé. Show PyjanitorPyjanitor là một triển khai của gói Janitor R để làm sạch dữ liệu bằng các phương pháp chuỗi trên môi trường Python. Pyjanitor dễ sử dụng với một API trực quan được kết nối trực tiếp với Pandas. Trên thực tế, chúng ta cũng đều biết pandas cung cấp rất nhiều tính năng làm sạch dữ liệu hữu ích như, dropna() để giảm giá trị null và todummies để mã hóa phân lọai. Pyjanitor nâng cao tính năng đó của Pandas như thế nào mình cùng xem nhé.. Import and Install Để sử dụng được Pyjanitor chúng ta tiến hành cài đặt và gọi đến Pyjanitor:
import và check version
Hình: pyjanitor version Ở đây mình dùng pyjanitor version 0.23.1. Tiếp theo chúng ta sẽ dùng thử package này xem như thế nào nhé. Đầu tiên mình sẽ tạo data sau đó sẽ thử với pandas và janitor
Convert data sang dạng dataFrame :
Hình 2: dataframe làm sạch dữ liệu với Pandas:
Hoặc sử dụng với api
Kết quả của cả 2 cách trên sẽ được như dưới đây Hình: kết quả với pandas Bây giờ chúng ta sẽ thực hành với pyjanitor
Kết quả như sau: Hình: pyjanitor Đổi tên columns trong pyjanitor, ở đây mình đổi companyname thành company:
Hình: đổi tên columns Pyjanitor sử dụng api của pandas nên mình thấy nó khá tương tương nhau, nhưng mình thấy pyjanitor code sẽ gọn hơn và nhanh hơn. KlibVới Klib chúng ta có thể làm sạch dữ liệu một cách nhanh chóng và rất dễ áp dụng với giá trị mặc định hợp lý có thể được sử dụng trên hầu hết DataFrame, bên cạnh đó còn có thể lấy được thông tin chi tiết của dữ liệu và trực quan hóa dữ liệu. Đầu tiên mình sẽ sử dụng với data stocks_df như ở trên để làm sạch dữ liệu nhé:
Code clean đơn giản đúng không ạ. chúng ta cùng xem kết quả nhé: Hình: clean dữ liệu với Klib Ở hình trên chúng ta còn thấy thông xin số columns bị drop , số lượng missing values bị drop nữa. Tiếp theo chúng ta sử dụng thêm một số tính năng của gói Klib này nha, mình sẽ sử dụng data này nhé Đầu tiên sẽ đọc dữ liệu ở trên đã nhé:
Hình: NFL dataset Plot missing value:
Hình: plot missing value Dựa vào hình này chúng ta có thể thấy được data này rất nhiều dữ liệu missing, vì vậy chúng ta cần clean dữ liệu luôn.
Kết quả: Hình: clean dữ liệu Chúng ta cũng có thể vẽ biểu đồ Correlation:
Với Klib chúng ta có thể làm rất nhiều việc vừa dễ dàng vừa nhanh chóng. DataPrepDataPrep dùng để: làm sạch dữ liệu, phân tích dữ liệu và thu thập dữ liệu. Tuy nhiên trong bài này chúng ta chỉ đề cập đến vấn đề làm sạch dữ liệu thôi.
Ở đây mình cũng sử dụng dữ liệu titanic nha mn
Với dataprep chúng ta có thể xuất ra 1 report hoàn chỉnh như sau:
Hình: clean_headers Và khi chúng ta muốn chuyển tên cột thành chữ thường thay vì chữ in hoa.
Hình: clean_headers với tên columns là chữ thường Khi muốn có một DataFrame sạch hoàn chỉnh, chúng ta có thể sử dụng API clean_df từ DataPrep. API này sẽ có hai đầu ra - kiểu dữ liệu và DataFrame đã được làm sạch.
Hình: làm sạch toàn bộ dữ liệu Bên cạnh việc phân tích dữ liệu gói dataprep còn cung cấp thêm tính năng thu thập dữ liệu nữa các bạn cùng tìm hiểu ở đây nhé. scrubadubScrubadub là một gói Python mã nguồn mở để xóa thông tin nhận dạng cá nhân khỏi dữ liệu văn bản. Scrubadub hoạt động bằng cách xóa dữ liệu cá nhân được phát hiện và thay thế nó bằng một số nhận dạng văn bản như {{EMAIL}} hoặc {{NAME}}. Đầu tiên chúng ta cùng cài đặt scrubadub
Kết quả: Hình: kết qủa Kết LuậnỞ bài viết này mình đã sử dụng một số package để làm sạch dữ liệu giúp cho công việc làm sạch dữ liệu thuận tiện, nhanh chóng và đơn giản hơn. Cảm ơn mọi người đã đọc bài viết của mình, mong nhận được sự góp ý của mọi người. Referencehttps://github.com/pyjanitor-devs/pyjanitor https://cmdlinetips.com/2021/01/introduction-to-data-cleaning-with-pyjanitor/ https://towardsdatascience.com/clean-connect-and-visualize-interactively-with-dataprep-9c4bcd071ea9 |