ตารางไพวอตและตารางแจกแจงไขว้
pd.pivot_table(), pd.crosstab() และการปรับรูปข้อมูลสำหรับสถิติสรุป
ตารางไพวอตและตารางแจกแจงไขว้ เป็นบทเรียน Learn AI with Python ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Learn AI with Python และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Learn AI with Python มีบทเรียนทั้งหมด 4 บทเรียน
การปรับรูปข้อมูลเพื่อค้นหาข้อมูลเชิงลึก
ตารางสรุปแบบหมุน จะปรับข้อมูลแบบยาวให้เป็นตารางกริด โดยสรุปค่าหนึ่งค่าตามแกนเชิงหมวดหมู่สองแกน เป็นตารางหมุนในโปรแกรมตารางคำนวณที่คุ้นเคย แต่ควบคุมได้ด้วยการเขียนโปรแกรม
import pandas as pd
df = pd.DataFrame({
"region": ["E", "E", "W", "W", "E"],
"product": ["A", "B", "A", "B", "A"],
"sales": [10, 20, 30, 40, 50],
})pivot_table พื้นฐาน
pd.pivot_table รับ values (ตัวเลขที่จะสรุป), index (แถว) และ columns (คอลัมน์) โดยค่าเริ่มต้นจะหาค่าเฉลี่ยของช่องที่ซ้ำกัน
pt = pd.pivot_table(df, values="sales", index="region", columns="product")
print(pt)
# product A B
# region
# E 30.0 20.0
# W 30.0 40.0การเลือกฟังก์ชันรวมข้อมูล
กำหนด aggfunc เพื่อควบคุมวิธีรวมข้อมูลที่ซ้ำกัน เช่น ผลรวม ค่า mean และจำนวน ใช้รายการเพื่อคำนวณหลายแบบพร้อมกัน
pt = pd.pivot_table(df, values="sales", index="region",
columns="product", aggfunc="sum")
print(pt)ฟังก์ชันรวมข้อมูลหลายแบบ
ส่งรายการฟังก์ชันเพื่อคำนวณค่าสรุปหลายแบบเคียงข้างกัน
pt = pd.pivot_table(df, values="sales", index="region",
aggfunc=["sum", "mean", "count"])
print(pt)การเติมช่องว่างที่ไม่มีข้อมูล
ชุดข้อมูลที่ไม่มีข้อมูลจะกลายเป็น NaN fill_value ใช้แทนค่าดังกล่าว ซึ่งมักแทนด้วย 0 เพื่อให้รายงานดูเรียบร้อย
pt = pd.pivot_table(df, values="sales", index="region",
columns="product", aggfunc="sum", fill_value=0)
print(pt)ผลรวมทั้งหมด
กำหนด margins=True เพื่อเพิ่มผลรวมทั้งหมดของแถวและคอลัมน์ โดยค่าเริ่มต้นจะติดป้ายกำกับว่า "ทั้งหมด"
pt = pd.pivot_table(df, values="sales", index="region",
columns="product", aggfunc="sum",
fill_value=0, margins=True)
print(pt)ระดับดัชนีหลายระดับ
ส่งรายการให้กับ index หรือ columns เพื่อสร้างการแจกแจงแบบลำดับชั้น เช่น เริ่มจากภูมิภาคแล้วจึงเป็นผลิตภัณฑ์
df["channel"] = ["on", "off", "on", "off", "on"]
pt = pd.pivot_table(df, values="sales",
index=["region", "channel"], aggfunc="sum")
print(pt)ตารางไขว้ด้วย crosstab
pd.crosstab เป็นตารางหมุนเฉพาะทางที่นับ (COUNTS) ความถี่ของชุดค่าผสมระหว่างตัวแปรเชิงหมวดหมู่สองตัว โดยไม่ต้องมีคอลัมน์ค่า
ct = pd.crosstab(df["region"], df["product"])
print(ct)
# product A B
# region
# E 2 1
# W 1 1การทำให้ crosstab เป็นมาตรฐาน
อาร์กิวเมนต์ normalize จะเปลี่ยนจำนวนนับให้เป็นสัดส่วน: "index" คำนวณแยกตามแถว "columns" คำนวณแยกตามคอลัมน์ หรือ True คำนวณจากผลรวมทั้งหมด
ct = pd.crosstab(df["region"], df["product"], normalize="index")
print(ct) # each row sums to 1.0crosstab พร้อมค่า
ระบุ values และ aggfunc เพื่อให้ crosstab สรุปตัวชี้วัดแทนการนับ ทำให้เส้นแบ่งระหว่าง crosstab กับ pivot_table ไม่ชัดเจน
ct = pd.crosstab(df["region"], df["product"],
values=df["sales"], aggfunc="sum")
print(ct)pivot_table กับ crosstab
ใช้ pivot_table เมื่อสรุปค่าตัวเลข ใช้ crosstab เมื่อต้องการนับความถี่ของชุดค่าผสมเชิงหมวดหมู่ นอกจากนี้ crosstab ยังทำให้การปรับค่าเป็นสัดส่วนทำได้ในบรรทัดเดียว
แบบทดสอบสั้น ๆ
ลองทดสอบความเข้าใจเรื่องการปรับรูปข้อมูลของคุณ
สรุป
เครื่องมือสำหรับปรับรูปข้อมูล:
pd.pivot_table(values, index, columns, aggfunc)ใช้สรุปตัวชี้วัดfill_valueสำหรับช่องว่าง และmargins=Trueสำหรับผลรวม- ใช้รายการของดัชนีและคอลัมน์เพื่อสร้างลำดับชั้น
pd.crosstabใช้นับชุดค่าผสม ส่วนnormalizeใช้สร้างสัดส่วน
คำถามที่พบบ่อย
บทเรียน “ตารางไพวอตและตารางแจกแจงไขว้” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “ตารางไพวอตและตารางแจกแจงไขว้” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Learn AI with Python ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Learn AI with Python มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “ตารางไพวอตและตารางแจกแจงไขว้”
pd.pivot_table(), pd.crosstab() และการปรับรูปข้อมูลสำหรับสถิติสรุป คุณปฏิบัติ Learn AI with Python ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Learn AI with Python หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Learn AI with Python บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน
บทเรียน “ตารางไพวอตและตารางแจกแจงไขว้” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Learn AI with Python นี้ได้ไหม
ได้ บทเรียน Learn AI with Python ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- GroupBy และการรวมข้อมูล
- ตารางไพวอตและตารางแจกแจงไขว้
- การผสานและการเชื่อมข้อมูลขั้นสูง
- อนุกรมเวลาใน Pandas