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

จะผนวกรายการต่อท้าย Pandas DataFrame โดยใช้ iloc ใน Python ได้อย่างไร


วิธี iloc เป็นการจัดทำดัชนีตามตำแหน่งจำนวนเต็มสำหรับการเลือกตามตำแหน่ง เรากำลังใช้ iloc เพื่อผนวกรายการเข้ากับ DataFrame

ให้เราสร้าง DataFrame ก่อน ข้อมูลอยู่ในรูปแบบของรายการการจัดอันดับทีมสำหรับตัวอย่างของเรา -

# data in the form of list of team rankings
Team = [['India', 1, 100],['Australia', 2, 85],['England', 3, 75],['New Zealand', 4 , 65],['South Africa', 5, 50],['Bangladesh', 6, 40]]

# Creating a DataFrame and adding columns
dataFrame = pd.DataFrame(Team, columns=['Country', 'Rank', 'Points'])

ต่อไปนี้เป็นแถวที่จะต่อท้าย -

myList = ["Sri Lanka", 7, 30]

ต่อท้ายแถวด้านบนโดยใช้ iloc() 5 หมายถึงดัชนี 6 เช่น ตำแหน่ง 6 แถวจะถูกแทนที่ด้วยแถวใหม่ด้านบน −

dataFrame.iloc[5] = myList

ตัวอย่าง

ต่อไปนี้เป็นรหัส -

import pandas as pd

# data in the form of list of team rankings
Team = [['India', 1, 100],['Australia', 2, 85],['England', 3, 75],['New Zealand', 4 , 65],['South Africa', 5, 50],['Bangladesh', 6, 40]]

# Creating a DataFrame and adding columns
dataFrame = pd.DataFrame(Team, columns=['Country', 'Rank', 'Points'])

print"DataFrame...\n",dataFrame

# row to be appended
myList = ["Sri Lanka", 7, 30]

# append the above row using iloc()
# 5 means index 6 i.e. position 6 row will get replaced with the above new row
dataFrame.iloc[5] = myList

# display the update dataframe
print"\nUpdated DataFrame after appending a row using iloc...\n",dataFrame

ผลลัพธ์

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

DataFrame...
       Country   Rank   Points
0        India      1      100
1    Australia      2       85
2      England      3       75
3  New Zealand      4       65
4 South Africa      5       50
5   Bangladesh      6       40

Updated DataFrame after appending a row using iloc...
       Country   Rank   Points
0        India      1      100
1    Australia      2       85
2      England      3       75
3  New Zealand      4       65
4 South Africa      5       50
5    Sri Lanka      7       30