แนวคิด
เลือกหลายแถวจาก DataFrame ได้หลายวิธี: slicing ด้วย [], .loc[] (label), .iloc[] (position)
ตัวอย่างโค้ด
import pandas as pd
df = pd.DataFrame(
[[10, 15], [20, 25], [30, 35], [40, 45]],
index=['w', 'x', 'y', 'z'],
columns=['a', 'b']
)
print("DataFrame:\n", df)
# 1. Select row by label (loc)
print("\nloc['z'] (แถว label z):\n", df.loc['z'])
# 2. Select row by integer position (iloc)
print("\niloc[1] (แถว index 1):\n", df.iloc[1])
# 3. Select multiple rows by slicing (integer position)
print("\ndf[0:2] (แถว 0-1):\n", df[0:2])
# 4. Select multiple rows by label slice (loc)
print("\nloc['w':'x'] (แถว w ถึง x):\n", df.loc['w':'x'])
# 5. Select multiple rows by position slice (iloc)
print("\niloc[0:2] (แถว 0-1):\n", df.iloc[0:2])
ผลลัพธ์
DataFrame:
a b
w 10 15
x 20 25
y 30 35
z 40 45
loc['z'] (แถว label z):
a 40
b 45
Name: z, dtype: int64
iloc[1] (แถว index 1):
a 20
b 25
Name: x, dtype: int64
df[0:2] (แถว 0-1):
a b
w 10 15
x 20 25
loc['w':'x'] (แถว w ถึง x):
a b
w 10 15
x 20 25
iloc[0:2] (แถว 0-1):
a b
w 10 15
x 20 25
สรุปความแตกต่าง
| วิธี | รูปแบบ | End inclusive? | คืนค่า |
|---|---|---|---|
| df[start:end] | position slice | Exclusive | DataFrame |
| df.loc[label1:label2] | label slice | Inclusive | DataFrame |
| df.iloc[pos1:pos2] | position slice | Exclusive | DataFrame |
| df.loc[label] | single label | - | Series |
| df.iloc[pos] | single position | - | Series |