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
objectsangnumericnếu hơn 90% dữ liệu là số. - Chuyển
objectsangdatetimenếu định dạng ngày tháng hợp lệ. - Chuyển
floatsangInt64nếu thực chất là số nguyên nhưng có chứa NaN. - Chuyển sang
boolcho 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
medianhoặcmean. - 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
pandasvànumpy. - 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
96071a90cb75843c64cd437ea1fee4d4ea6d09d2d5098d18cedf0e11a0eaa4c3
|
|
| MD5 |
18cd36e9ba31e4b6f90794550ac46bae
|
|
| BLAKE2b-256 |
b87da6d45319c0317fea6c675837177efd88a8b27158c1dba96ebd4668fa4d25
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6d7774e2175eebc6c7be2d041c1f8536d6e2783369c6e111ca02cbb8a0704704
|
|
| MD5 |
ba099a131a107617c2bc93b6050bc30d
|
|
| BLAKE2b-256 |
8f85af937d627b382daa3919bf75b368a04e5a88f70a6719221b24323c1a0745
|