วิธีเลือกแถวตามดัชนีใน pandas dataframe


บ่อยครั้งที่คุณอาจต้องการเลือกแถวใน DataFrame ของ pandas ตามค่าดัชนี

หากคุณต้องการเลือกแถวตามการจัดทำดัชนีจำนวนเต็ม คุณสามารถใช้ฟังก์ชัน .iloc ได้

หากคุณต้องการเลือกแถวตามการจัดทำดัชนีฉลาก คุณสามารถใช้ฟังก์ชัน .loc ได้

บทช่วยสอนนี้ให้ตัวอย่างวิธีใช้แต่ละฟังก์ชันเหล่านี้ในทางปฏิบัติ

ตัวอย่างที่ 1: เลือกแถวตามการจัดทำดัชนีจำนวนเต็ม

รหัสต่อไปนี้แสดงวิธีสร้าง DataFrame แพนด้าและใช้ .iloc เพื่อเลือกแถวที่มีค่าดัชนีจำนวนเต็ม 4 :

 import pandas as pd
import numpy as np

#make this example reproducible
n.p. random . seeds (0)

#createDataFrame
df = pd. DataFrame ( np.random.rand (6,2),index=range(0,18,3),columns=[' A ' ,' B '])

#view DataFrame
df

	       A B
0 0.548814 0.715189
3 0.602763 0.544883
6 0.423655 0.645894
9 0.437587 0.891773
12 0.963663 0.383442
15 0.791725 0.528895

#select the 5th row of the DataFrame
df. iloc [[4]]

	       A B
12 0.963663 0.383442

เราสามารถใช้ไวยากรณ์ที่คล้ายกันเพื่อเลือกหลายแถว:

 #select the 3rd, 4th, and 5th rows of the DataFrame
df. iloc [[2, 3, 4]]

	       A B
6 0.423655 0.645894
9 0.437587 0.891773
12 0.963663 0.383442

หรือเราสามารถเลือกแถวทั้งหมดในช่วง:

 #select the 3rd, 4th, and 5th rows of the DataFrame
df. iloc [2:5]

	       A B
6 0.423655 0.645894
9 0.437587 0.891773
12 0.963663 0.383442

ตัวอย่างที่ 2: เลือกแถวตามการจัดทำดัชนีฉลาก

รหัสต่อไปนี้แสดงวิธีสร้าง DataFrame แพนด้าและใช้ .loc เพื่อเลือกแถวที่มีป้ายกำกับดัชนีเป็น 3 :

 import pandas as pd
import numpy as np

#make this example reproducible
n.p. random . seeds (0)

#createDataFrame
df = pd. DataFrame ( np.random.rand (6,2),index=range(0,18,3),columns=[' A ' ,' B '])

#view DataFrame
df

	       A B
0 0.548814 0.715189
3 0.602763 0.544883
6 0.423655 0.645894
9 0.437587 0.891773
12 0.963663 0.383442
15 0.791725 0.528895

#select the row with index label '3'
df. loc [[3]]

               A B
3 0.602763 0.544883

เราสามารถใช้ไวยากรณ์ที่คล้ายกันเพื่อเลือกหลายแถวที่มีป้ายกำกับดัชนีต่างกัน:

 #select the rows with index labels '3', '6', and '9'
df. loc [[3, 6, 9]]

	       A B
3 0.602763 0.544883
6 0.423655 0.645894
9 0.437587 0.891773

ความแตกต่างระหว่าง .iloc และ .loc

ตัวอย่างข้างต้นแสดงให้เห็นถึงความแตกต่างเล็กน้อยระหว่าง .iloc และ .loc :

  • .iloc เลือกแถวตาม ดัชนีจำนวนเต็ม ดังนั้น หากคุณต้องการเลือกแถวที่ 5 ของ DataFrame คุณจะต้องใช้ df.iloc[[4]] เนื่องจากแถวแรกอยู่ที่ดัชนี 0 แถวที่สองอยู่ที่ดัชนี 1 และอื่นๆ
  • .loc เลือกแถวตาม ดัชนีที่มีป้ายกำกับ ดังนั้น หากคุณต้องการเลือกแถวที่มีป้ายกำกับดัชนีเป็น 5 คุณจะต้องใช้ df.loc[[5]] โดยตรง

แหล่งข้อมูลเพิ่มเติม

วิธีรับหมายเลขแถวใน Pandas DataFrame
วิธีลบแถวที่มีค่า NaN ใน Pandas
วิธีลบคอลัมน์ดัชนีใน Pandas

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *