Как удалить строки с повторяющимися значениями столбцов во фрейме данных Pandas?

1

У меня есть кадр данных pandas, который выглядит так.

'Column1' 'Column2' 'Column3'
'cat'     'bat'.    'xyz'
'toy'    'flower'.  'abc'
'cat'    'bat'      'lmn'

Я хочу определить, что кошка и летучая мышь - это те же самые значения, которые были повторены и, следовательно, хотят удалить одну запись и сохранить только первую запись. Результирующий фрейм данных должен иметь только.

'Column1'  'Column2' 'Column3'
'cat'.     'bat'.     'xyz'
'toy'.     'flower'.  'abc'   
Теги:
pandas

3 ответа

0
Лучший ответ

Использование drop_duplicates с subset со списком столбцов для проверки дубликатов и keep='first' для сохранения первого дубликата.

Если dataframe:

df = pd.DataFrame({'Column1': ["'cat'", "'toy'", "'cat'"],
                   'Column2': ["'bat'", "'flower'", "'bat'"],
                   'Column3': ["'xyz'", "'abc'", "'lmn'"]})
print(df)

Результат:

  Column1   Column2 Column3
0   'cat'     'bat'   'xyz'
1   'toy'  'flower'   'abc'
2   'cat'     'bat'   'lmn'

Затем:

result_df = df.drop_duplicates(subset=['Column1', 'Column2'], keep='first')
print(result_df)

Результат:

  Column1   Column2 Column3
0   'cat'     'bat'   'xyz'
1   'toy'  'flower'   'abc'
0

Внутри drop_duplicates() Dataframe вы можете предоставить серию имен столбцов, чтобы исключить дубликаты записей из ваших данных.

Следующий код "Протестировано" делает то же самое:

import pandas as pd

df = pd.DataFrame()
df.insert(loc=0,column='Column1',value=['cat',     'toy',    'cat'])
df.insert(loc=1,column='Column2',value=['bat',    'flower',  'bat'])
df.insert(loc=2,column='Column3',value=['xyz',     'abc',    'lmn'])

df = df.drop_duplicates(subset=['Column1','Column2'],keep='first')
print(df)

Внутри параметра подмножества вы также можете вставить другие имена столбцов, и по умолчанию он рассмотрит все столбцы ваших данных, и вы можете указать значение keep:

  • first: Drop дубликатов, кроме первого вхождения.
  • last: удалить дубликаты, за исключением последнего вхождения.
  • False: удалить все дубликаты.
0
import pandas as pd

df = pd.DataFrame({"Column1":["cat", "dog", "cat"],
                    "Column2":[1,1,1],
                    "Column3":["C","A","B"]})

df = df.drop_duplicates(subset=['Column1'], keep='first')
print(df)
  • 0
    также добавьте 'Column2' внутри параметра подмножества.
  • 0
    Хотя этот фрагмент кода может быть решением, включение пояснения действительно помогает улучшить качество вашего сообщения. Помните, что вы отвечаете на вопрос читателей в будущем, и эти люди могут не знать причин, по которым вы предлагаете код.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню