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

เลือกหลายแถวจาก Pandas DataFrame ด้วย Slicing

แนวคิด

เลือกหลายแถวจาก 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 sliceExclusiveDataFrame
df.loc[label1:label2]label sliceInclusiveDataFrame
df.iloc[pos1:pos2]position sliceExclusiveDataFrame
df.loc[label]single label-Series
df.iloc[pos]single position-Series