Skip to main content

SƠN AI DataFrame Cleaner

Project description

🐼 Pandatools: Smart Data Cleaning Accessor

Pandatools là một phần mở rộng (accessor) cho Pandas DataFrame, giúp tự động hóa quá trình phân tích chất lượng dữ liệu và thực hiện các bước làm sạch (cleaning) phổ biến chỉ với một dòng mã.

🚀 Tính năng chính

  • .clean.intoo(): Hiển thị bảng phân tích dữ liệu cực đẹp trên Terminal với các gợi ý xử lý và mã code thực thi đi kèm.
  • .clean.fix_dtypes(): Tự động nhận diện và chuyển đổi kiểu dữ liệu (vd: chuỗi số -> số, chuỗi ngày tháng -> datetime, danh mục lặp lại -> category).
  • .clean.fill_missing(): Điền giá trị thiếu thông minh dựa trên kiểu dữ liệu của từng cột.
  • .clean.strip_strings(): Loại bỏ khoảng trắng thừa ở đầu/cuối của tất cả các cột văn bản.
  • Hỗ trợ AI: Xuất báo cáo dưới dạng JSON để tích hợp vào các pipeline tự động hóa hoặc huấn luyện AI.

📦 Cài đặt

Cực kỳ đơn giản, không yêu cầu cấu hình máy phức tạp:

pip install git+https://github.com/sonbuwin-beep/pandatools.git

🛠 Cách sử dụng

import pandas as pd
import pandatools # Đăng ký accessor .clean

df = pd.read_csv("data.csv")

🛠 Các hàm chi tiết

1. Phân tích dữ liệu với .intoo()

Đây là tính năng mạnh mẽ nhất. Nó sẽ quét toàn bộ DataFrame và chỉ ra các vấn đề như: Missing values, Outliers, Sai kiểu dữ liệu, Duplicate IDs...

# Hiển thị bảng màu trên Terminal
df.clean.intoo()

# Trả về JSON để dùng cho các ứng dụng khác
report_json = df.clean.intoo(as_json=True)

2. Tự động sửa kiểu dữ liệu với .fix_dtypes()

Hàm này giúp bạn tiết kiệm thời gian ép kiểu thủ công:

  • Chuyển object sang numeric nếu hơn 90% dữ liệu là số.
  • Chuyển object sang datetime nếu định dạng ngày tháng hợp lệ.
  • Chuyển float sang Int64 nếu thực chất là số nguyên nhưng có chứa NaN.
  • Chuyển sang bool cho các cột chỉ chứa 0 và 1.
df = df.clean.fix_dtypes()

3. Làm sạch chuỗi với .strip_strings()

Xóa các khoảng trắng vô hình gây lỗi khi so sánh dữ liệu.

df = df.clean.strip_strings(lowercase=True) # Strip và chuyển về chữ thường

4. Xử lý giá trị thiếu với .fill_missing()

Tự động áp dụng chiến lược phù hợp:

  • Cột số: Fill bằng median hoặc mean.
  • Cột Datetime: Fill bằng ffill (forward fill).
  • Cột Phân loại (Category/Object): Fill bằng nhãn "Unknown".
df = df.clean.fill_missing(numeric_strategy="median")

5. Loại bỏ trùng lặp với .drop_dupes()

Thông báo chính xác số lượng hàng bị xóa.

df = df.clean.drop_dupes(subset=['id'])

💡 Ví dụ thực tế (Pipeline)

Bạn có thể kết chuỗi các lệnh để làm sạch dữ liệu cực nhanh:

df_clean = (df.clean
    .drop_dupes()
    .strip_strings()
    .fix_dtypes()
    .fill_missing()
)

df_clean.clean.intoo() # Kiểm tra lại kết quả

📝 Lưu ý

  • Thư viện yêu cầu pandasnumpy.
  • Các cảnh báo về định dạng ngày tháng cũ đã được tối ưu hóa để chạy mượt mà trên các phiên bản Pandas mới nhất (2.0+).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pandatools-2.0.3.tar.gz (19.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pandatools-2.0.3-py3-none-any.whl (17.4 kB view details)

Uploaded Python 3

File details

Details for the file pandatools-2.0.3.tar.gz.

File metadata

  • Download URL: pandatools-2.0.3.tar.gz
  • Upload date:
  • Size: 19.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.1

File hashes

Hashes for pandatools-2.0.3.tar.gz
Algorithm Hash digest
SHA256 96071a90cb75843c64cd437ea1fee4d4ea6d09d2d5098d18cedf0e11a0eaa4c3
MD5 18cd36e9ba31e4b6f90794550ac46bae
BLAKE2b-256 b87da6d45319c0317fea6c675837177efd88a8b27158c1dba96ebd4668fa4d25

See more details on using hashes here.

File details

Details for the file pandatools-2.0.3-py3-none-any.whl.

File metadata

  • Download URL: pandatools-2.0.3-py3-none-any.whl
  • Upload date:
  • Size: 17.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.1

File hashes

Hashes for pandatools-2.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 6d7774e2175eebc6c7be2d041c1f8536d6e2783369c6e111ca02cbb8a0704704
MD5 ba099a131a107617c2bc93b6050bc30d
BLAKE2b-256 8f85af937d627b382daa3919bf75b368a04e5a88f70a6719221b24323c1a0745

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page