Advanced-Value-Counts เป็น Python-package ที่มีคลาส AdvancedValueCounts ที่ใช้ประโยชน์จาก pandas ' .value_counts() , .groupby() และ Seoborn เพื่อรับข้อมูลจำนวนมากเกี่ยวกับจำนวนคอลัมน์ (หมวดหมู่) ในแพนด้า ศักยภาพของแพ็คเกจนี้อยู่ที่จุดสูงสุดเมื่อต้องการข้อมูลจำนวนคอลัมน์หลังจากการจัดกลุ่ม: df.groupby(groupby_col)[column].value_counts() ดูการใช้งานเกี่ยวกับวิธีการใช้ AdvancedValueCounts อ่านบทความสื่อนี้หรือปรึกษาโน้ตบุ๊กนี้สำหรับคำอธิบายเกี่ยวกับมูลค่าเพิ่มของแพ็คเกจนี้
สารบัญ :
pip install advanced-value-counts
หากข้อผิดพลาดพื้นผิวโปรดอัพเกรด pip และ setuptools
python3 -m pip install --upgrade pip
python3 -m pip install --upgrade setuptools
git clone https://github.com/sTomerG/advanced-value-counts.git
cd advanced-value-counts
pip install -e .
# optional but potentially crucial
pip install -r requirements/requirements.txt
เพื่อทดสอบว่าการติดตั้งนั้นประสบความสำเร็จในการดำเนินการในไดเรกทอรีค่าสูงขั้นสูงหรือไม่ (คาดว่าจะ มีการเสื่อมสภาพ
pytest
ตัวอย่างด้านล่างใช้ชุดข้อมูล Titanic รุ่นที่แก้ไขจาก Kaggle ซึ่งสามารถพบได้ใน gitrepo นี้ที่นี่
รหัสของสมุดบันทึกนี้สามารถพบได้ที่นี่
from advanced_value_counts . avc import AdvancedValueCounts
import pandas as pd
# read in the data file
df = pd . read_csv ( '../tests/data/titanic.csv' , usecols = [ 'CabinArea' , 'Title' ])
df . head ()| ห้องโดยสาร | ชื่อ | |
|---|---|---|
| 0 | น่าน | นาย |
| 1 | C | นาง |
| 2 | น่าน | นางสาว. |
| 3 | C | นาง |
| 4 | น่าน | นาย |
# create an instance of AdvancedValueCounts
avc = AdvancedValueCounts ( df = df , column = 'Title' )
# print the AdvancedValueCounts DataFrame
avc . avc_df| อัตราส่วน | นับ | |
|---|---|---|
| ชื่อ | ||
| นาย | 0.580247 | 517 |
| นางสาว. | 0.204265 | 182 |
| นาง | 0.140292 | 125 |
| ผู้เชี่ยวชาญ. | 0.044893 | 40 |
| _NA | 0.007856 | 7 |
| รายได้ | 0.006734 | 6 |
| วิชาเอก. | 0.002245 | 2 |
| พ.อ. | 0.002245 | 2 |
| Mlle | 0.002245 | 2 |
| เคานท์เตส | 0.001122 | 1 |
| Capt. | 0.001122 | 1 |
| นางสาว | 0.001122 | 1 |
| ท่าน. | 0.001122 | 1 |
| ผู้หญิง. | 0.001122 | 1 |
| MME | 0.001122 | 1 |
| สวมใส่. | 0.001122 | 1 |
| Jonkheer | 0.001122 | 1 |
ตั้งค่า min_group_count เป็น 5 เป็นกลุ่มกลุ่มเล็ก ๆ เป็นกลุ่ม '_other'
avc . min_group_count = 5
avc . avc_df| อัตราส่วน | นับ | |
|---|---|---|
| ชื่อ | ||
| นาย | 0.580247 | 517 |
| นางสาว. | 0.204265 | 182 |
| นาง | 0.140292 | 125 |
| ผู้เชี่ยวชาญ. | 0.044893 | 40 |
| _อื่น | 0.015713 | 14 |
| _NA | 0.007856 | 7 |
| รายได้ | 0.006734 | 6 |
พารามิเตอร์ของคลาส AdvancedValueCounts เพื่อปรับสำหรับกลุ่มเล็ก ๆ สำหรับคอลัมน์เดียว:
dropna : bool = False
min_group_count : int = 1 # does not effect NA or the '_other' group
min_group_ratio : float = 0 # does not effect NA or the '_other' group นอกจากนี้ยังเป็นไปได้ที่จะใช้ column ร่วมกับพารามิเตอร์ groupy_col: str = None เพื่อเลียนแบบพฤติกรรมของ df.groupby(groupby_col)[column].value_counts()
avc_grouped = AdvancedValueCounts ( df = df , column = 'Title' , groupby_col = 'CabinArea' )
avc_grouped . avc_df| นับ | Subgroup_ratio | subgr_r_diff_subgr_all | r_vs_total | ||
|---|---|---|---|---|---|
| ห้องโดยสาร | ชื่อ | ||||
| อัน | พ.อ. | 1 | 0.066667 | 0.064422 | 0.001122 |
| ผู้หญิง. | 1 | 0.066667 | 0.065544 | 0.001122 | |
| ผู้เชี่ยวชาญ. | 1 | 0.066667 | 0.021773 | 0.001122 | |
| นาย | 11 | 0.733333 | 0.153086 | 0.012346 | |
| ท่าน. | 1 | 0.066667 | 0.065544 | 0.001122 | |
| - | - | - | - | - | - |
| _NA | นาง | 81 | 0.117904 | -0.022388 | 0.090909 |
| นางสาว | 1 | 0.001456 | 0.000333 | 0.001122 | |
| รายได้ | 6 | 0.008734 | 0.002000 | 0.006734 | |
| _NA | 4 | 0.005822 | -0.002034 | 0.004489 | |
| _ทั้งหมด | 687 | 1.000000 | 0.000000 | 0.771044 |
74 แถว× 4 คอลัมน์
เพื่อให้ได้ภาพรวมที่ดีขึ้นของข้อมูลให้ตั้งค่าแอตทริบิวต์เพื่อปรับขนาดกลุ่มและปัดอัตราส่วน
avc_grouped . min_group_ratio = 0.05
avc_grouped . min_subgroup_count = 5
avc_grouped . round_ratio = 3
avc_grouped . avc_df| นับ | Subgroup_ratio | subgr_r_diff_subgr_all | r_vs_total | ||
|---|---|---|---|---|---|
| ห้องโดยสาร | ชื่อ | ||||
| ข | นางสาว. | 14 | 0.298 | 0.094 | 0.016 |
| นาย | 16 | 0.340 | -0.240 | 0.018 | |
| นาง | 10 | 0.213 | 0.073 | 0.011 | |
| _NA | 1 | 0.021 | 0.013 | 0.001 | |
| _อื่น | 6 | 0.127 | 0.111 | 0.007 | |
| _ทั้งหมด | 47 | 1.000 | 0.000 | 0.053 | |
| C | นางสาว. | 12 | 0.203 | -0.001 | 0.013 |
| นาย | 29 | 0.492 | -0.088 | 0.033 | |
| นาง | 14 | 0.237 | 0.097 | 0.016 | |
| _NA | 1 | 0.017 | 0.009 | 0.001 | |
| _อื่น | 3 | 0.051 | 0.035 | 0.003 | |
| _ทั้งหมด | 59 | 1.000 | 0.000 | 0.066 | |
| _ทั้งหมด | ผู้เชี่ยวชาญ. | 40 | 0.045 | น่าน | 0.045 |
| นางสาว. | 182 | 0.204 | น่าน | 0.204 | |
| นาย | 517 | 0.580 | น่าน | 0.580 | |
| นาง | 125 | 0.140 | น่าน | 0.140 | |
| รายได้ | 6 | 0.007 | น่าน | 0.007 | |
| _NA | 7 | 0.008 | น่าน | 0.008 | |
| _อื่น | 14 | 0.016 | น่าน | 0.016 | |
| _ทั้งหมด | 891 | 1.000 | น่าน | 1.000 | |
| _NA | ผู้เชี่ยวชาญ. | 33 | 0.048 | 0.003 | 0.037 |
| นางสาว. | 135 | 0.197 | -0.007 | 0.152 | |
| นาย | 424 | 0.617 | 0.037 | 0.476 | |
| นาง | 81 | 0.118 | -0.022 | 0.091 | |
| รายได้ | 6 | 0.009 | 0.002 | 0.007 | |
| _NA | 4 | 0.006 | -0.002 | 0.004 | |
| _อื่น | 4 | 0.006 | -0.010 | 0.004 | |
| _ทั้งหมด | 687 | 1.000 | 0.000 | 0.771 | |
| _อื่น | ผู้เชี่ยวชาญ. | 5 | 0.051 | 0.006 | 0.006 |
| นางสาว. | 21 | 0.214 | 0.010 | 0.024 | |
| นาย | 48 | 0.490 | -0.090 | 0.054 | |
| นาง | 20 | 0.204 | 0.064 | 0.022 | |
| _NA | 1 | 0.010 | 0.002 | 0.001 | |
| _อื่น | 3 | 0.031 | 0.015 | 0.003 | |
| _ทั้งหมด | 98 | 1.000 | 0.000 | 0.110 |
พารามิเตอร์ของคลาส AdvancedValueCounts เพื่อปรับสำหรับการจัดกลุ่มในกลุ่มขั้นสูงโดย AdvancedValueCounts
# for groupby_col:
dropna : bool = False
max_groups : int = None # does not effect NA or the '_other' group
min_group_count : int = 1 # does not effect NA or the '_other' group
min_group_ratio : float = 0 # does not effect NA or the '_other' group
# for column:
dropna : bool = False
max_subgroups : int = None # does not effect NA or the '_other' group
min_subgroup_count : int = 1 # does not effect NA or the '_other' group
min_subgroup_ratio : float = 0 # does not effect NA or the '_other' group
min_subgroup_ratio_vs_total : float = 0 # does not effect NA or the '_other' group เพื่อรับพล็อตของ AdvancedValueCounts.avc_df :
avc_grouped . get_plot ( normalize = True ) # normalize = True is default value 
เพื่อรับ dataframe โดยไม่มี summary_statistics เช่น '_all' และ '_total' :
avc_grouped . unsummerized_df| นับ | Subgroup_ratio | subgr_r_diff_subgr_all | r_vs_total | ||
|---|---|---|---|---|---|
| ห้องโดยสาร | ชื่อ | ||||
| ข | นางสาว. | 14 | 0.298 | 0.094 | 0.016 |
| นาย | 16 | 0.340 | -0.240 | 0.018 | |
| นาง | 10 | 0.213 | 0.073 | 0.011 | |
| _NA | 1 | 0.021 | 0.013 | 0.001 | |
| _อื่น | 6 | 0.127 | 0.111 | 0.007 | |
| C | นางสาว. | 12 | 0.203 | -0.001 | 0.013 |
| นาย | 29 | 0.492 | -0.088 | 0.033 | |
| นาง | 14 | 0.237 | 0.097 | 0.016 | |
| _NA | 1 | 0.017 | 0.009 | 0.001 | |
| _อื่น | 3 | 0.051 | 0.035 | 0.003 | |
| _NA | ผู้เชี่ยวชาญ. | 33 | 0.048 | 0.003 | 0.037 |
| นางสาว. | 135 | 0.197 | -0.007 | 0.152 | |
| นาย | 424 | 0.617 | 0.037 | 0.476 | |
| นาง | 81 | 0.118 | -0.022 | 0.091 | |
| รายได้ | 6 | 0.009 | 0.002 | 0.007 | |
| _NA | 4 | 0.006 | -0.002 | 0.004 | |
| _อื่น | 4 | 0.006 | -0.010 | 0.004 | |
| _อื่น | ผู้เชี่ยวชาญ. | 5 | 0.051 | 0.006 | 0.006 |
| นางสาว. | 21 | 0.214 | 0.010 | 0.024 | |
| นาย | 48 | 0.490 | -0.090 | 0.054 | |
| นาง | 20 | 0.204 | 0.064 | 0.022 | |
| _NA | 1 | 0.010 | 0.002 | 0.001 | |
| _อื่น | 3 | 0.031 | 0.015 | 0.003 |
git clone https://github.com/sTomerG/advanced-value-counts.git
cd advanced-value-counts
python3 -m venv .venv
เปิดใช้งานสภาพแวดล้อมเสมือนจริง
Windows:
..venvScriptsactivate
Linux / MacOS:
source .venv/bin/activate
ติดตั้งข้อกำหนด
python -m pip install --upgrade pip
pip install -r requirements/requirements.txt
ทดสอบว่าทุกอย่างทำงานได้อย่างถูกต้อง
(คาดว่าจะ มีการเสื่อมราคา ))
ด้วยสารพิษ
tox
ไม่มีสารพิษ
pip install -e .
pytest