Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

Python Pandas – เลือกแถวจาก DataFrame โดยส่ง Row Label (loc)

ภาพรวม

ใช้ 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... ทั้งคู่ให้ผลเหมือนกัน แต่ความหมายต่างกัน