การตรวจสอบ DataFrame เบื้องต้น
ใช้ head(), tail(), info(), describe() และ shape เพื่อทำความเข้าใจเนื้อหาและโครงสร้างของ DataFrame ใด ๆ ได้อย่างรวดเร็ว
การตรวจสอบ DataFrame เบื้องต้น เป็นบทเรียน Pandas & NumPy Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Pandas & NumPy Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Pandas & NumPy Academy มีบทเรียนทั้งหมด 4 บทเรียน
ห้าขั้นตอนแรกสำหรับ DataFrame ใด ๆ
ทุกครั้งที่โหลดชุดข้อมูลใหม่ การตรวจสอบอย่างเป็นระบบจะช่วยประหยัดเวลาในการแก้ไขข้อผิดพลาดได้หลายชั่วโมง เครื่องมือของ Pandas สำหรับงานนี้ประกอบด้วย head() เพื่อดูแถวแรก, tail() เพื่อดูแถวสุดท้าย, info() เพื่อดูชนิดของคอลัมน์และค่าว่าง, describe() เพื่อดูสถิติ และ shape เพื่อดูขนาด การตรวจสอบทั้งห้านี้ใช้เวลาน้อยกว่าหนึ่งนาที และเผยให้เห็นปัญหาคุณภาพข้อมูลส่วนใหญ่ได้ทันที
import pandas as pd
# Assume df is loaded from a CSV
print(df.shape) # (rows, cols)
df.head() # first 5 rows
df.info() # dtypes + non-null counts
df.describe() # statisticshead() และ tail()
df.head(n) ส่งคืน n แถวแรก (ค่าเริ่มต้นคือ 5) เป็น DataFrame ส่วน df.tail(n) ส่งคืน n แถวสุดท้าย เมธอดทั้งสองช่วยให้คุณตรวจสอบว่าข้อมูลถูกแยกวิเคราะห์อย่างถูกต้องหรือไม่ เช่น ชื่อคอลัมน์อยู่ในแถวหัวตาราง คอลัมน์ตัวเลขมีตัวเลข และสตริงวันที่ไม่ได้ถูกตีความผิด เมธอดเหล่านี้ไม่ทำลายข้อมูลและส่งคืน DataFrame ใหม่
import pandas as pd
df = pd.DataFrame({'a': range(20), 'b': range(20, 40)})
print(df.head(3))
# a b
# 0 0 20
# 1 1 21
# 2 2 22
print(df.tail(2))
# a b
# 18 18 38
# 19 19 39info(): ชนิดข้อมูลและจำนวนค่าที่ไม่เป็นค่าว่าง
df.info() แสดงสรุปอย่างกระชับ ได้แก่ dtype ของดัชนี จำนวนค่าที่ไม่เป็นค่าว่างในแต่ละคอลัมน์ dtype ของแต่ละคอลัมน์ และการใช้หน่วยความจำทั้งหมด คอลัมน์ที่มีค่าที่ไม่เป็นค่าว่างน้อยกว่าจำนวนแถวทั้งหมดแสดงว่ามีข้อมูลสูญหาย dtype แบบ Object มักหมายถึงคอลัมน์สตริง (หรือคอลัมน์ที่มีชนิดข้อมูลปะปนกัน) ซึ่งอาจต้องทำความสะอาดก่อนวิเคราะห์
import pandas as pd
import numpy as np
df = pd.DataFrame({'name': ['A', 'B', None],
'score': [80.0, np.nan, 90.0],
'grade': ['A', 'C', 'A']})
df.info()
# Column Non-Null Count Dtype
# name 2 non-null object
# score 2 non-null float64
# grade 3 non-null objectdescribe(): สรุปทางสถิติ
df.describe() คำนวณจำนวน ค่าเฉลี่ย ส่วนเบี่ยงเบนมาตรฐาน ค่าต่ำสุด เปอร์เซ็นไทล์ที่ 25 ค่าที่ 50 (มัธยฐาน) เปอร์เซ็นไทล์ที่ 75 และค่าสูงสุดสำหรับคอลัมน์ตัวเลขทั้งหมด ส่ง include='all' เพื่อสรุปคอลัมน์ Object (สตริง) ด้วย ส่ง include='object' เพื่อสรุปเฉพาะคอลัมน์ประเภทหมวดหมู่ ผลลัพธ์เป็น DataFrame เช่นกัน คุณจึงบันทึกหรือตกแต่งรูปแบบเพื่อใช้ในรายงานได้
import pandas as pd
df = pd.DataFrame({'age': [25, 30, 35, 40], 'score': [88, 72, 91, 65]})
print(df.describe().round(1))
# age score
# count 4.0 4.0
# mean 32.5 79.0
# std 6.5 12.0shape, ndim และ size
df.shape เป็นทูเพิล (nrows, ncols) df.ndim จะส่งคืน 2 เสมอสำหรับ DataFrames ส่วน df.size คือจำนวนเซลล์ทั้งหมด ใช้ len(df) เพื่อดูจำนวนแถว (มีค่าเท่ากับ df.shape[0]) สิ่งเหล่านี้เป็นการตรวจสอบความสมเหตุสมผลเบื้องต้นที่ง่ายที่สุด ใช้ยืนยันจำนวนแถวที่คาดไว้หลังโหลดข้อมูลและหลังการกรองแต่ละขั้นตอน
import pandas as pd
df = pd.DataFrame({'x': range(100), 'y': range(100), 'z': range(100)})
print(df.shape) # (100, 3)
print(len(df)) # 100
print(df.size) # 300
print(df.ndim) # 2dtypes และ select_dtypes()
df.dtypes ส่งคืน Series ที่จับคู่ชื่อแต่ละคอลัมน์กับ dtype ของคอลัมน์นั้น df.select_dtypes(include='number') ส่งคืน DataFrame ใหม่ที่มีเฉพาะคอลัมน์ตัวเลข ซึ่งมีประโยชน์สำหรับการคำนวณสหสัมพันธ์หรือใช้การแปลงค่าตัวเลข โดยไม่เผลอทำงานกับคอลัมน์สตริง ส่ง exclude='object' เพื่อตัดคอลัมน์ข้อความออก
import pandas as pd
df = pd.DataFrame({'a': [1,2], 'b': [1.0,2.0], 'c': ['x','y']})
print(df.dtypes)
# a int64
# b float64
# c object
numeric = df.select_dtypes(include='number')
print(numeric.columns.tolist()) # ['a', 'b']isnull() และจำนวนค่าว่าง
df.isnull().sum() ให้จำนวนค่าที่หายไปในแต่ละคอลัมน์ ซึ่งเป็นวิธีที่รวดเร็วที่สุดในการค้นหาว่าคอลัมน์ใดต้องทำความสะอาด หารด้วย len(df) เพื่อหาสัดส่วนค่าที่หายไป คอลัมน์ที่มีค่าหายไปมากกว่า 50% มักต้องจัดการเป็นพิเศษ เช่น ลบทิ้งหรือใช้การเติมค่าตามความรู้เฉพาะด้าน
import pandas as pd
import numpy as np
df = pd.DataFrame({'a': [1, np.nan, 3], 'b': [np.nan, np.nan, 6]})
print(df.isnull().sum())
# a 1
# b 2
print((df.isnull().sum() / len(df)).round(2))
# a 0.33
# b 0.67value_counts() กับคอลัมน์ของ DataFrame
การเรียก df['col'].value_counts() จะแสดงความถี่ของค่าไม่ซ้ำแต่ละค่าในคอลัมน์นั้น โดยเรียงตามจำนวน เพิ่ม normalize=True เพื่อแสดงเป็นเปอร์เซ็นต์ ใช้ dropna=False เพื่อให้นับ NaN เป็นหมวดหมู่ด้วย วิธีนี้เป็นวิธีที่รวดเร็วที่สุดในการตรวจสอบความไม่สมดุลของหมวดหมู่หรือค่าที่ไม่คาดคิดในคอลัมน์ประเภทหมวดหมู่
import pandas as pd
df = pd.DataFrame({'status': ['active','inactive','active','active','banned']})
print(df['status'].value_counts())
# active 3
# inactive 1
# banned 1
print(df['status'].value_counts(normalize=True).round(2))การตรวจสอบ columns และ index
df.columns.tolist() ให้รายการ Python ธรรมดาที่มีชื่อคอลัมน์ ซึ่งมีประโยชน์สำหรับการจัดการด้วยโปรแกรมหรือการบันทึกเหตุการณ์ df.index แสดงป้ายกำกับแถวและชนิดของป้ายกำกับ ตรวจสอบ df.index.is_unique เพื่อยืนยันว่าไม่มีป้ายกำกับแถวซ้ำกัน ซึ่งเป็นเงื่อนไขเบื้องต้นสำหรับการดำเนินการรวมข้อมูลและการคำนวณอนุกรมเวลาหลายประเภท
import pandas as pd
df = pd.DataFrame({'a': [1,2,3]}, index=['x', 'y', 'z'])
print(df.columns.tolist()) # ['a']
print(df.index.tolist()) # ['x', 'y', 'z']
print(df.index.is_unique) # Truesample() สำหรับการตรวจสอบแบบสุ่ม
df.sample(n) ส่งคืนแถวที่สุ่มเลือกจำนวน n แถวโดยไม่เลือกซ้ำ df.sample(frac=0.1) ส่งคืนแถว 10% กำหนด random_state= เพื่อให้ทำซ้ำได้ การสุ่มตัวอย่างเหมาะกว่า head() สำหรับค้นหาปัญหาบริเวณกลางชุดข้อมูลขนาดใหญ่ ซึ่งอาจไม่ปรากฏในสองสามแถวแรก
import pandas as pd
df = pd.DataFrame({'x': range(1000), 'y': range(1000)})
print(df.sample(3, random_state=42))
print(df.sample(frac=0.005, random_state=0)) # 0.5% of rowsmemory_usage() สำหรับวางแผนขนาดหน่วยความจำ
df.memory_usage(deep=True) ส่งคืนหน่วยความจำที่แต่ละคอลัมน์ใช้ โดยมีหน่วยเป็นไบต์ deep=True บังคับให้วัดคอลัมน์ dtype แบบ Object ได้อย่างแม่นยำ เนื่องจากสตริงของคอลัมน์เหล่านี้อยู่นอกบัฟเฟอร์ของ DataFrame รวมค่าเหล่านี้เพื่อหาหน่วยความจำทั้งหมด ใช้ก่อนและหลังลดขนาด dtype เพื่อยืนยันว่าการใช้หน่วยความจำลดลงแล้ว
import pandas as pd
df = pd.DataFrame({'a': range(10000), 'b': [str(i) for i in range(10000)]})
usage = df.memory_usage(deep=True)
print(usage)
print('Total bytes:', usage.sum())ตรวจสอบความเข้าใจ
ทดสอบความเข้าใจเกี่ยวกับการตรวจสอบ DataFrame เบื้องต้นจากบทเรียนนี้
สรุปบทเรียน
ในบทเรียนนี้ คุณได้เรียนรู้ว่า head() และ tail() ช่วยให้ตรวจสอบจุดเริ่มต้นและจุดสิ้นสุดของ DataFrame ด้วยสายตา, info() แสดง dtype และจำนวนค่าที่หายไปได้ในการเรียกครั้งเดียว และ describe() ให้สรุปทางสถิติสำหรับคอลัมน์ตัวเลข บทถัดไป เราจะโหลดข้อมูลจากรูปแบบไฟล์ที่พบบ่อยที่สุด ได้แก่ CSV, Excel และ JSON ลงใน DataFrames
คำถามที่พบบ่อย
บทเรียน “การตรวจสอบ DataFrame เบื้องต้น” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การตรวจสอบ DataFrame เบื้องต้น” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Pandas & NumPy Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Pandas & NumPy Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การตรวจสอบ DataFrame เบื้องต้น”
ใช้ head(), tail(), info(), describe() และ shape เพื่อทำความเข้าใจเนื้อหาและโครงสร้างของ DataFrame ใด ๆ ได้อย่างรวดเร็ว คุณปฏิบัติ Pandas & NumPy Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Pandas & NumPy Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Pandas & NumPy Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน
บทเรียน “การตรวจสอบ DataFrame เบื้องต้น” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Pandas & NumPy Academy นี้ได้ไหม
ได้ บทเรียน Pandas & NumPy Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การสร้าง DataFrames
- การเลือกคอลัมน์และแถว
- การเพิ่มและลบคอลัมน์
- การตรวจสอบ DataFrame เบื้องต้น