pandatools 2.0.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,118 @@
1
+ Metadata-Version: 2.4
2
+ Name: pandatools
3
+ Version: 2.0.2
4
+ Summary: SƠN AI DataFrame Cleaner
5
+ Author: Sơn Lê
6
+ Requires-Python: >=3.8
7
+ Description-Content-Type: text/markdown
8
+ Requires-Dist: pandas>=2.0
9
+ Requires-Dist: numpy
10
+ Provides-Extra: ai
11
+ Requires-Dist: openai; extra == "ai"
12
+ Requires-Dist: google-generativeai; extra == "ai"
13
+ Dynamic: author
14
+ Dynamic: description
15
+ Dynamic: description-content-type
16
+ Dynamic: provides-extra
17
+ Dynamic: requires-dist
18
+ Dynamic: requires-python
19
+ Dynamic: summary
20
+
21
+ # 🐼 Pandatools: Smart Data Cleaning Accessor
22
+
23
+ **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ã.
24
+
25
+ ## 🚀 Tính năng chính
26
+
27
+ - **`.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.
28
+ - **`.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).
29
+ - **`.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.
30
+ - **`.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.
31
+ - **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.
32
+
33
+ ## 📦 Cài đặt
34
+
35
+ Cực kỳ đơn giản, không yêu cầu cấu hình máy phức tạp:
36
+
37
+ ```bash
38
+ pip install git+https://github.com/sonbuwin-beep/pandatools.git
39
+ ```
40
+
41
+ ## 🛠 Cách sử dụng
42
+ ```python
43
+ import pandas as pd
44
+ import pandatools # Đăng ký accessor .clean
45
+
46
+ df = pd.read_csv("data.csv")
47
+ ```
48
+
49
+ ---
50
+
51
+ ## 🛠 Các hàm chi tiết
52
+
53
+ ### 1. Phân tích dữ liệu với `.intoo()`
54
+ Đâ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...
55
+
56
+ ```python
57
+ # Hiển thị bảng màu trên Terminal
58
+ df.clean.intoo()
59
+
60
+ # Trả về JSON để dùng cho các ứng dụng khác
61
+ report_json = df.clean.intoo(as_json=True)
62
+ ```
63
+
64
+ ### 2. Tự động sửa kiểu dữ liệu với `.fix_dtypes()`
65
+ Hàm này giúp bạn tiết kiệm thời gian ép kiểu thủ công:
66
+ - Chuyển `object` sang `numeric` nếu hơn 90% dữ liệu là số.
67
+ - Chuyển `object` sang `datetime` nếu định dạng ngày tháng hợp lệ.
68
+ - Chuyển `float` sang `Int64` nếu thực chất là số nguyên nhưng có chứa NaN.
69
+ - Chuyển sang `bool` cho các cột chỉ chứa 0 và 1.
70
+
71
+ ```python
72
+ df = df.clean.fix_dtypes()
73
+ ```
74
+
75
+ ### 3. Làm sạch chuỗi với `.strip_strings()`
76
+ Xóa các khoảng trắng vô hình gây lỗi khi so sánh dữ liệu.
77
+
78
+ ```python
79
+ df = df.clean.strip_strings(lowercase=True) # Strip và chuyển về chữ thường
80
+ ```
81
+
82
+ ### 4. Xử lý giá trị thiếu với `.fill_missing()`
83
+ Tự động áp dụng chiến lược phù hợp:
84
+ - Cột số: Fill bằng `median` hoặc `mean`.
85
+ - Cột Datetime: Fill bằng `ffill` (forward fill).
86
+ - Cột Phân loại (Category/Object): Fill bằng nhãn `"Unknown"`.
87
+
88
+ ```python
89
+ df = df.clean.fill_missing(numeric_strategy="median")
90
+ ```
91
+
92
+ ### 5. Loại bỏ trùng lặp với `.drop_dupes()`
93
+ Thông báo chính xác số lượng hàng bị xóa.
94
+
95
+ ```python
96
+ df = df.clean.drop_dupes(subset=['id'])
97
+ ```
98
+
99
+ ---
100
+
101
+ ## 💡 Ví dụ thực tế (Pipeline)
102
+
103
+ Bạn có thể kết chuỗi các lệnh để làm sạch dữ liệu cực nhanh:
104
+
105
+ ```python
106
+ df_clean = (df.clean
107
+ .drop_dupes()
108
+ .strip_strings()
109
+ .fix_dtypes()
110
+ .fill_missing()
111
+ )
112
+
113
+ df_clean.clean.intoo() # Kiểm tra lại kết quả
114
+ ```
115
+
116
+ ## 📝 Lưu ý
117
+ - Thư viện yêu cầu `pandas` và `numpy`.
118
+ - 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+).
@@ -0,0 +1,98 @@
1
+ # 🐼 Pandatools: Smart Data Cleaning Accessor
2
+
3
+ **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ã.
4
+
5
+ ## 🚀 Tính năng chính
6
+
7
+ - **`.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.
8
+ - **`.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).
9
+ - **`.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.
10
+ - **`.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.
11
+ - **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.
12
+
13
+ ## 📦 Cài đặt
14
+
15
+ Cực kỳ đơn giản, không yêu cầu cấu hình máy phức tạp:
16
+
17
+ ```bash
18
+ pip install git+https://github.com/sonbuwin-beep/pandatools.git
19
+ ```
20
+
21
+ ## 🛠 Cách sử dụng
22
+ ```python
23
+ import pandas as pd
24
+ import pandatools # Đăng ký accessor .clean
25
+
26
+ df = pd.read_csv("data.csv")
27
+ ```
28
+
29
+ ---
30
+
31
+ ## 🛠 Các hàm chi tiết
32
+
33
+ ### 1. Phân tích dữ liệu với `.intoo()`
34
+ Đâ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...
35
+
36
+ ```python
37
+ # Hiển thị bảng màu trên Terminal
38
+ df.clean.intoo()
39
+
40
+ # Trả về JSON để dùng cho các ứng dụng khác
41
+ report_json = df.clean.intoo(as_json=True)
42
+ ```
43
+
44
+ ### 2. Tự động sửa kiểu dữ liệu với `.fix_dtypes()`
45
+ Hàm này giúp bạn tiết kiệm thời gian ép kiểu thủ công:
46
+ - Chuyển `object` sang `numeric` nếu hơn 90% dữ liệu là số.
47
+ - Chuyển `object` sang `datetime` nếu định dạng ngày tháng hợp lệ.
48
+ - Chuyển `float` sang `Int64` nếu thực chất là số nguyên nhưng có chứa NaN.
49
+ - Chuyển sang `bool` cho các cột chỉ chứa 0 và 1.
50
+
51
+ ```python
52
+ df = df.clean.fix_dtypes()
53
+ ```
54
+
55
+ ### 3. Làm sạch chuỗi với `.strip_strings()`
56
+ Xóa các khoảng trắng vô hình gây lỗi khi so sánh dữ liệu.
57
+
58
+ ```python
59
+ df = df.clean.strip_strings(lowercase=True) # Strip và chuyển về chữ thường
60
+ ```
61
+
62
+ ### 4. Xử lý giá trị thiếu với `.fill_missing()`
63
+ Tự động áp dụng chiến lược phù hợp:
64
+ - Cột số: Fill bằng `median` hoặc `mean`.
65
+ - Cột Datetime: Fill bằng `ffill` (forward fill).
66
+ - Cột Phân loại (Category/Object): Fill bằng nhãn `"Unknown"`.
67
+
68
+ ```python
69
+ df = df.clean.fill_missing(numeric_strategy="median")
70
+ ```
71
+
72
+ ### 5. Loại bỏ trùng lặp với `.drop_dupes()`
73
+ Thông báo chính xác số lượng hàng bị xóa.
74
+
75
+ ```python
76
+ df = df.clean.drop_dupes(subset=['id'])
77
+ ```
78
+
79
+ ---
80
+
81
+ ## 💡 Ví dụ thực tế (Pipeline)
82
+
83
+ Bạn có thể kết chuỗi các lệnh để làm sạch dữ liệu cực nhanh:
84
+
85
+ ```python
86
+ df_clean = (df.clean
87
+ .drop_dupes()
88
+ .strip_strings()
89
+ .fix_dtypes()
90
+ .fill_missing()
91
+ )
92
+
93
+ df_clean.clean.intoo() # Kiểm tra lại kết quả
94
+ ```
95
+
96
+ ## 📝 Lưu ý
97
+ - Thư viện yêu cầu `pandas` và `numpy`.
98
+ - 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+).
@@ -0,0 +1,11 @@
1
+ from .accessor import (
2
+ son,
3
+ son_ai,
4
+ list_tasks,
5
+ SonConfig,
6
+ BigDataConfig,
7
+ DataFrameCleaner,
8
+ )
9
+
10
+ # Khởi tạo version
11
+ __version__ = "2.0.2"