ภาพรวม
ใช้ loc[] เลือกแถวตาม label (ชื่อ index) ไม่ใช่ตำแหน่งตัวเลข
ตัวอย่างโค้ด
import pandas as pd
dataFrame = pd.DataFrame(
[[10, 15], [20, 25], [30, 35]],
index=['x', 'y', 'z'],
columns=['a', 'b']
)
print("DataFrame...\n", dataFrame)
# Select row with label 'z'
print("\nSelect rows by passing label...")
print(dataFrame.loc['z'])
ผลลัพธ์
DataFrame...
a b
x 10 15
y 20 25
z 30 35
Select rows by passing label...
a 30
b 35
Name: z, dtype: int64
การใช้งาน loc เพิ่มเติม
df.loc['x'] # แถวเดียว (คืน Series)
df.loc[['x', 'z']] # หลายแถว (คืน DataFrame)
df.loc['x':'z'] # slice ด้วย label (inclusive ทั้งสองข้าง)
df.loc['x', 'a'] # ค่าเดียว: แถว x คอลัมน์ a
df.loc[:, 'a'] # ทุกแถว คอลัมน์ a
df.loc[df['a'] > 15] # Boolean indexing
สรุป: loc vs iloc
- loc – label-based (ชื่อ index, ชื่อคอลัมน์)
- iloc – position-based (integer index)
- ถ้า index เป็นตัวเลข 0,1,2... ทั้งคู่ให้ผลเหมือนกัน แต่ความหมายต่างกัน