แนวคิด
DataFrame.iloc[row_slice, col_slice] เลือกข้อมูลด้วย integer position (ตำแหน่งตัวเลข) ไม่ใช่ label เหมาะสำหรับการ slice ตำแหน่งแถว/คอลัมน์
ตัวอย่างโค้ด
import pandas as pd
df = pd.DataFrame({
"Product": ["SmartTV", "ChromeCast", "Speaker", "Earphone"],
"Opening_Stock": [300, 700, 1200, 1500],
"Closing_Stock": [200, 500, 1000, 900]
})
print("DataFrame:\n", df)
# เลือกแถว 0-1 (2 แถวแรก) และคอลัมน์ 0-1 (2 คอลัมน์แรก)
subset = df.iloc[0:2, 0:2]
print("\niloc[0:2, 0:2] (2 แถวแรก, 2 คอลัมน์แรก):\n", subset)
# เลือกแถวทั้งหมด คอลัมน์ที่ 1 (Opening_Stock)
print("\niloc[:, 1] (คอลัมน์ Opening_Stock):\n", df.iloc[:, 1])
# เลือกแถวสุดท้าย 2 แถว ทุกคอลัมน์
print("\niloc[-2:, :] (2 แถวสุดท้าย):\n", df.iloc[-2:, :])
ผลลัพธ์
DataFrame:
Closing_Stock Opening_Stock Product
0 200 300 SmartTV
1 500 700 ChromeCast
2 1000 1200 Speaker
3 900 1500 Earphone
iloc[0:2, 0:2] (2 แถวแรก, 2 คอลัมน์แรก):
Closing_Stock Opening_Stock
0 200 300
1 500 700
iloc[:, 1] (คอลัมน์ Opening_Stock):
0 300
1 700
2 1200
3 1500
Name: Opening_Stock, dtype: int64
iloc[-2:, :] (2 แถวสุดท้าย):
Closing_Stock Opening_Stock Product
2 1000 1200 Speaker
3 900 1500 Earphone
iloc vs loc
| คุณสมบัติ | iloc | loc |
|---|---|---|
| การเข้าถึง | Integer position | Label name |
| Slice end | Exclusive (ไม่รวม) | Inclusive (รวม) |
| Boolean array | รองรับ | รองรับ |