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

Python Pandas – สร้างชุดย่อยและแสดงเฉพาะรายการสุดท้ายจากค่าที่ซ้ำกัน


ในการสร้างชุดย่อยและแสดงเฉพาะรายการสุดท้ายจากค่าที่ซ้ำกัน ให้ใช้ “เก็บ ” พร้อมพารามิเตอร์ ‘สุดท้าย ” ค่าในเมธอด drop_duplicates() วิธีการ drop_duplicates() ลบรายการที่ซ้ำกัน

ขั้นแรกให้เราสร้าง DataFrame ที่มี 3 คอลัมน์ -

dataFrame = pd.DataFrame({'Car': ['BMW', 'Mercedes', 'Lamborghini', 'BMW', 'Mercedes', 'Porsche'],'Place': ['Delhi', 'Hyderabad', 'Chandigarh', 'Delhi', 'Hyderabad', 'Mumbai'],'UnitsSold': [85, 70, 80, 95, 55, 90]})

การลบรายการที่ซ้ำกันและแสดงรายการล่าสุด ใช้พารามิเตอร์ keep เราได้ตั้งค่า "สุดท้าย" แถวที่ซ้ำกันยกเว้นรายการสุดท้ายจะถูกลบ เราได้พิจารณาชุดย่อยโดยใช้พารามิเตอร์ "ชุดย่อย" -

dataFrame2 = dataFrame.drop_duplicates(subset = ['Car', 'Place'], keep ='last').reset_index(drop = True)

ตัวอย่าง

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

import pandas as pd

# Create DataFrame
dataFrame = pd.DataFrame({'Car': ['BMW', 'Mercedes', 'Lamborghini', 'BMW', 'Mercedes', 'Porsche'],'Place': ['Delhi', 'Hyderabad', 'Chandigarh', 'Delhi', 'Hyderabad', 'Mumbai'],'UnitsSold': [85, 70, 80, 95, 55, 90]})

print"Dataframe...\n", dataFrame

# removing duplicates and displaying last entry
# using keep parameter, we have set "last"
# duplicate rows except the last entry will get deleted
# considered a subset using the subset parameter
dataFrame2 = dataFrame.drop_duplicates(subset = ['Car', 'Place'], keep ='last').reset_index(drop = True)
print"\nUpdated DataFrame after removing duplicates...\n",dataFrame2

ผลลัพธ์

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

Dataframe...
           Car       Place   UnitsSold
0          BMW       Delhi          85
1     Mercedes   Hyderabad          70
2  Lamborghini  Chandigarh          80
3          BMW       Delhi          95
4     Mercedes   Hyderabad          55
5      Porsche      Mumbai          90

Updated DataFrame after removing duplicates...
           Car       Place   UnitsSold
0  Lamborghini  Chandigarh          80
1          BMW       Delhi          95
2     Mercedes   Hyderabad          55
3      Porsche      Mumbai          90