วิธีรับหมายเลขแถวใน pandas dataframe


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

โชคดีที่ทำได้ง่ายโดยใช้ฟังก์ชัน .index

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

ตัวอย่างที่ 1: รับหมายเลขแถวที่สอดคล้องกับค่าที่กำหนด

สมมติว่าเรามี DataFrame แพนด้าดังต่อไปนี้:

 import pandas as pd

#createDataFrame
df = pd.DataFrame({'points': [25, 12, 15, 14, 19],
                   'assists': [5, 7, 7, 9, 12],
                   'team': ['Mavs', 'Mavs', 'Spurs', 'Celtics', 'Warriors']})

#view DataFrame 
print (df)

        team assists points
0 25 5 Mavs
1 12 7 Mavs
2 15 7 Spurs
3 14 9 Celtics
4 19 12 Warriors

เราสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อรับหมายเลขบรรทัดโดยที่ “ทีม” เท่ากับ Mavs:

 #get row numbers where 'team' is equal to Mavs
df[df[' team '] == ' Mavs ']. index

Int64Index([0, 1], dtype='int64')

เราจะเห็นว่าชื่อทีมเท่ากับ ‘Mavs’ ที่บรรทัดดัชนี 0 และ 1

เรายังสามารถรับหมายเลขบรรทัดที่พบชื่อทีมในรายการชื่อทีมบางชื่อ:

 #get row numbers where 'team' is equal to Mavs or Spurs
filter_list = [' Mavs ', ' Spurs ']

#return only rows where team is in the list of team names
df[df. team . isin (filter_list)]. index

Int64Index([0, 1, 2], dtype='int64')

เราจะเห็นว่าชื่อทีมเท่ากับ ‘Mavs’ หรือ ‘Spurs’ ที่ดัชนีแถว 0 , 1 และ 2

ตัวอย่างที่ 2: รับหมายเลขแถวที่ไม่ซ้ำกัน

สมมติว่าเรามี DataFrame แพนด้าดังต่อไปนี้:

 import pandas as pd

#createDataFrame
df = pd.DataFrame({'points': [25, 12, 15, 14, 19],
                   'assists': [5, 7, 7, 9, 12],
                   'team': ['Mavs', 'Mavs', 'Spurs', 'Celtics', 'Warriors']})

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

 #get the row number where team is equal to Celtics
df[df[' team '] == ' Celtics ']. index [ 0 ]

3

เราจะเห็นว่าทีมมีค่าเท่ากับ “เซลติกส์” ที่ดัชนีแถวที่ 3 .

ตัวอย่างที่ 3: รับผลรวมของหมายเลขบรรทัด

สมมติว่าเรามี DataFrame แพนด้าดังต่อไปนี้:

 import pandas as pd

#createDataFrame
df = pd.DataFrame({'points': [25, 12, 15, 14, 19],
                   'assists': [5, 7, 7, 9, 12],
                   'team': ['Mavs', 'Mavs', 'Spurs', 'Celtics', 'Warriors']})

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

 #find total number of rows where team is equal to Mavs
len (df[df[' team '] == ' Celtics ']. index )

2

เราจะเห็นว่าทีมนี้มีค่าเท่ากับ “Mavs” ทั้งหมด 2 เส้น

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

บทช่วยสอนต่อไปนี้จะอธิบายวิธีการทำงานทั่วไปอื่นๆ ในแพนด้า:

วิธีค้นหาค่าที่ไม่ซ้ำในหลายคอลัมน์ใน Pandas
วิธีกรอง Pandas DataFrame ในหลายเงื่อนไข
วิธีนับค่าที่หายไปใน Pandas DataFrame

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

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