Удалите повторяющиеся строки в DataFrame Python, сохранив последнее вхождение

Чтобы получить дубликаты и удалить их из DataFrame Python, сохранив последнее вхождение, вы можете использовать различные методы. Вот несколько примеров:

Метод 1: использование функций pandas duulated()и drop_duplications()

import pandas as pd
# Creating a sample DataFrame
df = pd.DataFrame({'A': [1, 2, 3, 2, 4, 3, 5],
                   'B': ['a', 'b', 'c', 'b', 'd', 'c', 'e']})
# Getting the duplicates
duplicates = df[df.duplicated(keep='last')]
# Removing duplicates while keeping the last occurrence
df = df.drop_duplicates(keep='last')
print("Duplicates:")
print(duplicates)
print("\nDataFrame after removing duplicates:")
print(df)

Метод 2: использование функций pandas groupby()и last()

import pandas as pd
# Creating a sample DataFrame
df = pd.DataFrame({'A': [1, 2, 3, 2, 4, 3, 5],
                   'B': ['a', 'b', 'c', 'b', 'd', 'c', 'e']})
# Grouping by all columns and keeping the last occurrence
df = df.groupby(df.columns.tolist()).last().reset_index()
print("DataFrame after removing duplicates:")
print(df)

Метод 3. Использование словарного понимания

# Creating a sample DataFrame
df = pd.DataFrame({'A': [1, 2, 3, 2, 4, 3, 5],
                   'B': ['a', 'b', 'c', 'b', 'd', 'c', 'e']})
# Converting DataFrame to dictionary
dict_data = df.to_dict('records')
# Creating a dictionary comprehension to keep the last occurrence
unique_dict = {tuple(row.values()): row for row in dict_data}
# Converting the dictionary back to DataFrame
df = pd.DataFrame(list(unique_dict.values()))
print("DataFrame after removing duplicates:")
print(df)