0Pricing
Python Academy · บทเรียน

การใช้ดัชนี การกรอง และมาสก์บูลีน

เลือกแถวและคอลัมน์ด้วย loc, iloc และเงื่อนไขบูลีน

การใช้ดัชนี การกรอง และมาสก์บูลีน เป็นบทเรียน Python Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Python Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Python Academy มีบทเรียนทั้งหมด 4 บทเรียน

loc เทียบกับ iloc

loc เลือกข้อมูลตามป้ายกำกับ ส่วน iloc เลือกตามตำแหน่งจำนวนเต็ม อย่าสับสนระหว่างสองวิธีนี้

import pandas as pd

df = pd.DataFrame({"a":[1,2,3],"b":[4,5,6]}, index=["x","y","z"])
print(df.loc["y"])       # row with label y
print(df.iloc[1])        # row at position 1 (same row)
print(df.loc["x":"y"])   # rows x to y inclusive

การกรองด้วยมาสก์บูลีน

สร้าง Series แบบบูลีนแล้วใช้เลือกแถว วิธีนี้เทียบเท่ากับการทำดัชนีแบบบูลีนของ NumPy ใน pandas

import pandas as pd

df = pd.DataFrame({"name":["Alice","Bob","Carol"],"age":[30,17,25]})
adults = df[df["age"] >= 18]
print(adults)
# Alice 30
# Carol 25

เงื่อนไขหลายรายการ

รวมเงื่อนไขแบบบูลีนด้วย & (และ) และ | (หรือ) โดยครอบแต่ละเงื่อนไขด้วยวงเล็บ

import pandas as pd

df = pd.DataFrame({"city":["NY","LA","NY","LA"],"score":[80,90,70,85]})
result = df[(df["city"]=="NY") & (df["score"]>75)]
print(result)

เมธอด query()

df.query("expression") รับนิพจน์ในรูปสตริง ซึ่งมักอ่านง่ายกว่าการใช้มาสก์บูลีน

import pandas as pd

df = pd.DataFrame({"age":[30,17,25],"score":[90,80,70]})
result = df.query("age >= 18 and score > 75")
print(result)

การกรองด้วย isin()

isin(list) กรองแถวที่ค่าของคอลัมน์อยู่ในรายการที่กำหนด

import pandas as pd

df = pd.DataFrame({"city":["NY","LA","Chicago","NY"],"val":[1,2,3,4]})
print(df[df["city"].isin(["NY","LA"])])
# rows with NY or LA

between() สำหรับการกรองตามช่วง

series.between(left, right) ส่งคืนค่า True สำหรับค่าที่อยู่ในช่วง [left, right] โดยค่าเริ่มต้นจะรวมขอบเขตทั้งสองด้าน

import pandas as pd

df = pd.DataFrame({"score":[55,70,85,95,40]})
print(df[df["score"].between(60, 90)])
# 70 and 85

loc สำหรับการกำหนดค่า

ใช้ loc/iloc สำหรับการกำหนดค่าโดยตรงกับข้อมูลเสมอ เพื่อหลีกเลี่ยง SettingWithCopyWarning

import pandas as pd

df = pd.DataFrame({"val":[1,2,3,4]})
df.loc[df["val"] > 2, "val"] = 99
print(df)
# 0:1  1:2  2:99  3:99

at และ iat สำหรับค่าเดี่ยว

at[label, col] และ iat[i, j] ช่วยให้เข้าถึงค่าสเกลาร์ได้อย่างรวดเร็ว ซึ่งเร็วกว่าการใช้ loc/iloc สำหรับค่าเดี่ยว

import pandas as pd

df = pd.DataFrame({"a":[10,20],"b":[30,40]})
print(df.at[0,"a"])    # 10  (by label)
print(df.iat[1,1])     # 40  (by position)

การเลือกตามชนิดข้อมูล

select_dtypes(include/exclude) เลือกคอลัมน์ตามชนิดข้อมูล

import pandas as pd

df = pd.DataFrame({"x":[1,2],"name":["a","b"],"score":[1.5,2.5]})
nums = df.select_dtypes(include=["number"])
print(nums.columns.tolist())   # ['x', 'score']

การนำค่าซ้ำออก

drop_duplicates() นำแถวที่ซ้ำกันออก ระบุ subset เพื่อเปรียบเทียบเฉพาะบางคอลัมน์

import pandas as pd

df = pd.DataFrame({"name":["Alice","Bob","Alice"],"age":[30,25,30]})
print(df.drop_duplicates())
# keeps first Alice, removes second

nlargest และ nsmallest

เลือกแถว N อันดับแรกหรืออันดับสุดท้ายตามค่าของคอลัมน์ได้อย่างมีประสิทธิภาพ

import pandas as pd

df = pd.DataFrame({"product":["A","B","C","D"],"sales":[500,300,800,200]})
print(df.nlargest(2,"sales"))
# C 800
# A 500

ตรวจสอบด่วน

loc และ iloc แตกต่างกันอย่างไร

ทบทวน

ใช้ loc[label] เพื่อเลือกข้อมูลตามป้ายกำกับ และใช้ iloc[i] เพื่อเลือกตามตำแหน่ง กรองแถวด้วยมาสก์บูลีนที่รวมด้วย &/| ใช้ query() สำหรับตัวกรองที่อ่านง่าย ใช้ isin() สำหรับการทดสอบสมาชิก และกำหนดค่าผ่าน loc เสมอเพื่อหลีกเลี่ยง SettingWithCopyWarning

คำถามที่พบบ่อย

บทเรียน “การใช้ดัชนี การกรอง และมาสก์บูลีน” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การใช้ดัชนี การกรอง และมาสก์บูลีน” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Python Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Python Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การใช้ดัชนี การกรอง และมาสก์บูลีน”

เลือกแถวและคอลัมน์ด้วย loc, iloc และเงื่อนไขบูลีน คุณปฏิบัติ Python Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Python Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Python Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน

บทเรียน “การใช้ดัชนี การกรอง และมาสก์บูลีน” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Python Academy นี้ได้ไหม

ได้ บทเรียน Python Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

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

  1. พื้นฐาน Series และ DataFrame
  2. การใช้ดัชนี การกรอง และมาสก์บูลีน
  3. GroupBy การรวมข้อมูล และตารางไพวอต
  4. การผสาน การเชื่อม และการทำความสะอาดข้อมูล
← กลับไปที่ Python Academy