0Pricing
Learn AI with Python · บทเรียน

ตารางไพวอตและตารางแจกแจงไขว้

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.0

crosstab พร้อมค่า

ระบุ 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. GroupBy และการรวมข้อมูล
  2. ตารางไพวอตและตารางแจกแจงไขว้
  3. การผสานและการเชื่อมข้อมูลขั้นสูง
  4. อนุกรมเวลาใน Pandas
← กลับไปที่ Learn AI with Python