@bernardo_nolan
Вы можете использовать метод DataFrame.drop_duplicates()
для удаления дубликатов из DataFrame
. Например:
1 2 3 4 5 |
import pandas as pd df = pd.DataFrame({'A': [1, 2, 2, 3, 4, 5, 5, 5, 6, 7, 7]}) df = df.drop_duplicates() print(df) |
Вывод:
1 2 3 4 5 6 7 8 |
A 0 1 1 2 3 3 4 4 5 5 8 6 9 7 |
По умолчанию drop_duplicates()
удаляет все дубликаты, следующие за первыми вхождениями, и оставляет первое вхождение каждого уникального значения. Однако вы можете указать список столбцов, по которым требуется искать дубликаты, с помощью аргумента subset
. Например:
1 2 3 4 5 6 |
import pandas as pd df = pd.DataFrame({'A': [1, 2, 2, 3, 4, 5, 5, 5, 6, 7, 7], 'B': [3, 3, 4, 5, 5, 6, 6, 7, 8, 8, 9]}) df = df.drop_duplicates(subset=['A']) print(df) |
Вывод:
1 2 3 4 5 6 7 8 |
A B 0 1 3 1 2 3 3 3 5 4 4 5 5 5 6 8 6 8 9 7 8 |
Вы можете также указать, что требуется удалить только повторяющиеся строки, указав значение keep='first'
или keep='last'
. Это будет
@bernardo_nolan
сохранять первое или последнее вхождение каждого уникального значения, а остальные будут удалены. Например:
1 2 3 4 5
import pandas as pd
df = pd.DataFrame({'A': [1, 2, 2, 3, 4, 5, 5, 5, 6, 7, 7]}) df = df.drop_duplicates(keep='last') print(df)
Вывод:
1 2 3 4 5 6 7
1
|
A |
0 1 1 2 3 3 4 4 7 5 9 6 10 7
В этом примере остается последнее вхождение каждого уникального значения, а остальные удаляются.