การใช้ดัชนี การกรอง และมาสก์บูลีน
เลือกแถวและคอลัมน์ด้วย 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 LAbetween() สำหรับการกรองตามช่วง
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 85loc สำหรับการกำหนดค่า
ใช้ 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:99at และ 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 secondnlargest และ 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- พื้นฐาน Series และ DataFrame
- การใช้ดัชนี การกรอง และมาสก์บูลีน
- GroupBy การรวมข้อมูล และตารางไพวอต
- การผสาน การเชื่อม และการทำความสะอาดข้อมูล