Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Python Pandas - Tạo tập con và chỉ hiển thị mục nhập cuối từ giá trị trùng lặp

Để tạo tập con và chỉ hiển thị mục nhập cuối từ giá trị trùng lặp, sử dụng tham số keep với giá trị last trong phương thức drop_duplicates(). Phương thức drop_duplicates() loại bỏ các bản sao.

Trước tiên, tạo DataFrame với 3 cột:

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

Xóa trùng lặp và hiển thị mục nhập cuối. Sử dụng tham số keep, đặt "last". Các hàng trùng lặp ngoại trừ mục nhập cuối sẽ bị xóa. Chúng ta xem xét tập con bằng tham số "subset":

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

Ví dụ hoàn chỉnh

Mã nguồn đầy đủ:

import pandas as pd
# Tạo 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)
# xóa trùng lặp và hiển thị mục nhập cuối
# dùng keep parameter, đặt "last"
# hàng trùng lặp trừ mục nhập cuối sẽ bị xóa
# xem xét tập con dùng subset parameter
dataFrame2 = dataFrame.drop_duplicates(subset=['Car', 'Place'], keep='last').reset_index(drop=True)
print("\nDataFrame cập nhật sau khi xóa trùng lặp...\n", dataFrame2)

Kết quả

Chương trình sẽ tạo ra kết quả sau:

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