Как вывести дубликаты в pandas
Как удалить повторяющиеся строки в Pandas Python
Главное меню » Программирование » Python » Как удалить повторяющиеся строки в Pandas Python
Выявление дубликатов в Pandas Python
Необходимо определить, есть ли в используемых вами данных повторяющиеся строки. Чтобы проверить дублирование данных, вы можете использовать любой из методов, описанных в следующих разделах.
Способ 1:
Прочтите файл csv и передайте его во фрейм данных. Затем определите повторяющиеся строки с помощью функции duplicated(). Наконец, используйте оператор печати для отображения повторяющихся строк.
Способ 2:
Используя этот метод, столбец is_duplicated будет добавлен в конец таблицы и помечен как «True» в случае дублирования строк.
Удаление дубликатов в Pandas Python
Дублированные строки могут быть удалены из вашего фрейма данных, используя следующий синтаксис:
Три вышеуказанных параметра являются необязательными и более подробно описаны ниже:
Удалите дубликаты, сохранив только первое вхождение
Когда вы используете «keep = first», будет сохранено только первое вхождение строки, а все остальные дубликаты будут удалены.
Пример
В этом примере будет сохранена только первая строка, а остальные дубликаты будут удалены:
Сохраненное вхождение первой строки выделено красным, а остальные дубликаты удалены.
Удалите дубликаты, сохранив только последнее вхождение
Когда вы используете «keep = last», все повторяющиеся строки, кроме последнего вхождения, будут удалены.
Пример
В следующем примере удаляются все повторяющиеся строки, кроме последнего вхождения.
На следующем изображении дубликаты удалены, и сохраняется только последнее вхождение строки.
Удалить все повторяющиеся строки
Чтобы удалить все повторяющиеся строки из таблицы, установите «keep = False» следующим образом:
Как вы можете видеть на следующем изображении, все дубликаты удалены из фрейма данных:
Удалить связанные дубликаты из указанного столбца
По умолчанию функция проверяет все повторяющиеся строки из всех столбцов в заданном фрейме данных. Но вы также можете указать имя столбца с помощью параметра подмножества.
Пример
В следующем примере все связанные дубли удаляются из столбца «Состояния».
Вывод
В этой статье показано, как удалить повторяющиеся строки из фрейма данных с помощью функции drop_duplicates() в Pandas Python. Вы также можете очистить свои данные от дублирования или избыточности с помощью этой функции. В статье также показано, как определять любые дубликаты во фрейме данных.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Python | Панды Dataframe.duplicated ()
Python — отличный язык для анализа данных, в первую очередь благодаря фантастической экосистеме пакетов Python, ориентированных на данные. Pandas является одним из таких пакетов и значительно упрощает импорт и анализ данных.
Важной частью анализа данных является анализ дублирующихся значений и их удаление. Метод Pandas duplicated() помогает анализировать только дублирующиеся значения. Он возвращает логический ряд, который имеет значение True только для уникальных элементов.
subset: Takes a column or list of column label. It’s default value is none. After passing columns, it will consider them only for duplicates.
keep: Controls how to consider duplicate value. It has only three distinct value and default is ‘first’.
–> If ‘first’, it considers first value as unique and rest of the same values as duplicate.
–> If ‘last’, it considers last value as unique and rest of the same values as duplicate.
–> If False, it consider all of the same values as duplicates.
Чтобы загрузить используемый CSV-файл, нажмите здесь.
Пример # 1: Возвращение логического ряда
В следующем примере логическая серия возвращается на основе повторяющихся значений в столбце «Имя».
# импорт пакета панд
import pandas as pd
# создание фрейма данных из CSV-файла
data = pd.read_csv( «employees.csv» )
# сортировка по имени
# создание серии bool
bool_series = data[ «First Name» ].duplicated()
# отображение данных
data.head()
# Данные дисплея
data[bool_series]
Выход:
Как показано в выходном изображении, поскольку параметр keep был значением по умолчанию, то есть «first», следовательно, всякий раз, когда встречается имя, первое считается «Unique» и «res Duplicate».
Пример № 2: удаление дубликатов
В этом примере для параметра keep установлено значение False, поэтому принимаются только уникальные значения, а дублированные значения удаляются из данных.
# импорт пакета панд
import pandas as pd
# создание фрейма данных из CSV-файла
data = pd.read_csv( «employees.csv» )
# сортировка по имени
# создание серии bool
bool_series = data[ «First Name» ].duplicated(keep = False )
# bool series
bool_series
# передача НЕ серии bool для просмотра только уникальных значений
# отображение данных
data.info()
data
Выход:
Так как метод duplicated () возвращает False для Duplicates, NOT серии принимается, чтобы увидеть уникальное значение в кадре данных.
Анализ данных с Pandas.Python
У вас есть данные которые надо превратить в аккуратную табличку, Pandas вам поможет ) Pandas — программная библиотека на языке Python для обработки и анализа данных. Работа с данными строится поверх библиотеки NumPy, являющейся инструментом более низкого уровня. Вообщем если вы хотите ваши хаотичные данные загнать в красивую табличку, где уже намного легче обрабатывать и анализировать данные, поехали.
У нас есть набор данных, который нужно превратить в таблицу. Это делается вызовом конструктора DataFrame() Конструктор принимает два аргумента – список данных и названия столбцов, которые должны быть в таблице. Попробуем :
CSV (от англ. Comma-Separated Values — значения, разделённые запятыми) — текстовый формат, предназначенный для представления табличных данных. Строка таблицы соответствует строке текста, которая содержит одно или несколько полей, разделенных запятыми.
Информация о базе.
У DataFrame есть неотъемлемые свойства, значения которых можно запросить. Атрибут columns содержит информацию о названиях столбцов в наборе данных. Для просмотра типа данных каждого столбца лучше всего использовать атрибут dtypes. object соответствует типу srt. О размерах таблицы с данными сообщает её атрибут shape.
Всю информацию, которую предоставляют разные атрибуты DataFrame, можно получить вызовом одного-единственного метода info().
Работа с данными или индексация.
К каждой ячейке с данными в DataFrame можно обратиться по её индексу и названию столбца. Мы можем получать различные срезы данных в зависимости от того, какой запрос к DataFrame мы сформулируем.
Атрибут loc[строка, столбец] даёт доступ к элементу по строке и столбцу.
Но это не самое интересное, мы можем использовать логическую индексацию. Давайте сделаем выборку все данных где пароль задан 12345 :
Так же мы можем посчитать количество данных. В Pandas для этого есть метод count() :
Для примера посчитаем долю паролей «12345» в базе данных :
Очистка данных.
Конечно данные не идеальны. Где то пропущены значения, возможно есть дубликаты и т.д. Pandos конечно нам позволяет очистить данные от мусора.
Для удаления дубликатов из данных используем метод .drop_duplicates()
Для просмотра всех уникальных значений в столбце используется метод . unique()
Анализ данных.
Анализ данных начинают с разделения их на группы по какому-нибудь признаку. Эта операция называется группировка данных. Группировка оправданна, если данные чётко делятся по значимому признаку, а полученные группы близки к теме задачи.
В 2014 и 2016 было открыто очень много планет. Уммм
Если нужно сравнить по одному показателю, метод применяют к DataFrameGroupBy с указанием на один столбец. Например радиус :
Давайте сделаем выборку по планетам радиус которых почти равен земному и отсортируем по убыванию. Для сортировки значений в Pandas есть метод .sort_values( )
Oписательная статистика — четыре основных метода максимум, минимум, медиана и среднее
В статистике медиана делит выборку пополам: в одной половине значения меньше медианного, в другой больше. Логично, что для определения медианы список обязательно должен быть отсортирован — либо по возрастанию, либо по убыванию.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Трансформация данных в pandas ч.1 / pd 11
Процесс подготовки данных для анализа включает сборку данных в Dataframe с возможными добавлениями из других объектов и удалением ненужных частей. Следующий этап — трансформация. После того как данные внутри структуры организованы, нужно преобразовать ее значения. Этот раздел будет посвящен распространенным проблемам и процессам, которые требуются для их решения с помощью функций библиотеки pandas.
Среди них удаление элементов с повторяющимися значениями, изменение индексов, обработка числовых значений данных и строк.
Удаление повторов
Дубликаты строк могут присутствовать в Dataframe по разным причинам. И в объектах особо крупного размера их может быть сложно обнаружить. Для этого в pandas есть инструменты анализа повторяющихся данных для крупных структур.
Для начала создадим простой Dataframe с повторяющимися строками.
Объект с булевыми элементами может быть особенно полезен, например, для фильтрации. Так, чтобы увидеть строки-дубликаты, нужно просто написать следующее:
Маппинг
Библиотека pandas предоставляет набор функций, использующих маппинг для выполнения определенных операций. Маппинг — это всего лишь создание списка совпадений двух разных значений, что позволяет привязывать значение определенной метке или строке.
Для определения маппинга лучше всего подходит объект dict :
• replace() — Заменяет значения
• map() — Создает новый столбец
• rename() — Заменяет значения индекса
Замена значений с помощью маппинга
Часто бывает так, что в готовой структуре данных присутствуют значения, не соответствующие конкретным требованиям. Например, текст может быть написан на другом языке, являться синонимом или, например, выраженным в другом виде. В таких случаях используется операция замены разных значений.
Для примера определим Dataframe с разными объектами и их цветами, включая два названия цветов не на английском.
Для замены некорректных значений новыми нужно определить маппинг соответствий, где ключами будут выступать новые значения.
Добавление значений с помощью маппинга
В предыдущем примере вы узнали, как менять значения с помощью маппинга. Теперь попробуем использовать маппинг на другом примере — для добавления новых значений в колонку на основе значений в другой. Маппинг всегда определяется отдельно.
Предположим, что нужно добавить колонку с ценой вещи из объекта. Также предположим, что имеется список цен. Определим его в виде объекта dict с ценами для каждого типа объекта.
Переименование индексов осей
В тех случаях когда заменить нужно только одно значение, все можно и не писать.
Дискретизация и биннинг
Более сложный процесс преобразования называется дискретизацией. Он используется для обработки большим объемов данных. Для анализа их необходимо разделять на дискретные категории, например, распределив диапазон значений на меньшие интервалы и посчитав статистику для каждого. Еще один пример — большое количество образцов. Даже здесь необходимо разделять весь диапазон по категориям и внутри них считать вхождения и статистику.
В следующем случае, например, нужно работать с экспериментальными значениями, лежащими в диапазоне от 0 до 100. Эти данные собраны в список.
Вы знаете, что все значения лежат в диапазоне от 0 до 100, а это значит, что их можно разделить на 4 одинаковых части, бины. В первом будут элементы от 0 до 25, во втором — от 26 до 50, в третьем — от 51 до 75, а в последнем — от 75 до 100.
Для этого в pandas сначала нужно определить массив со значениями разделения:
У каждого класса есть нижний предел с круглой скобкой и верхний — с квадратной. Такая запись соответствует математической, используемой для записи интервалов. Если скобка квадратная, то число лежит в диапазоне, а если круглая — то нет.
Если функции cut() передать в качестве аргумента целое число, а не границы бина, то диапазон значений будет разделен на указанное количество интервалов.
Пределы будут основаны на минимуме и максимуме данных.
Определение и фильтрация лишних данных
При анализе данных часто приходится находить аномальные значения в структуре данных. Для примера создайте Dataframe с тремя колонками целиком случайных чисел.
С помощью функции describe() можно увидеть статистику для каждой колонки.
Перестановка
Для этого примера создайте Dataframe с числами в порядке возрастания.
Случайная выборка
В этом случае один и тот же участок попадается даже чаще.
Python | Панды dataframe.drop_duplicates ()
Python — отличный язык для анализа данных, в первую очередь благодаря фантастической экосистеме пакетов Python, ориентированных на данные. Pandas является одним из таких пакетов и значительно упрощает импорт и анализ данных.
Важной частью анализа данных является анализ дублирующихся значений и их удаление. drop_duplicates() Pandas помогает удалить дубликаты из фрейма данных.
Syntax: DataFrame.drop_duplicates(subset=None, keep=’first’, inplace=False)
Parameters:
subset: Subset takes a column or list of column label. It’s default value is none. After passing columns, it will consider them only for duplicates.
keep: keep is to control how to consider duplicate value. It has only three distinct value and default is ‘first’.
inplace: Boolean values, removes rows with duplicates if True.
Return type: DataFrame with removed duplicate rows depending on Arguments passed.
Чтобы загрузить используемый CSV-файл, нажмите здесь.
Пример № 1: Удаление строк с одинаковыми именами
В следующем примере строки, имеющие одно и то же имя, удаляются, и возвращается новый фрейм данных.
# импорт пакета панд
import pandas as pd
# создание фрейма данных из CSV-файла
data = pd.read_csv( «employees.csv» )
# сортировка по имени
# удаление ВСЕХ дублирующих значений
# отображение данных
data
Выход:
Как показано на рисунке, строки с одинаковыми именами были удалены из фрейма данных.
Пример №2: удаление строк со всеми повторяющимися значениями
В этом примере строки, имеющие все значения, будут удалены. Поскольку в файле csv такой строки нет, случайная строка дублируется и сначала вставляется во фрейм данных.
# импорт пакета панд
import pandas as pd
# создание фрейма данных из CSV-файла
data = pd.read_csv( «employees.csv» )
# длина перед добавлением строки
# вручную вставить дубликат строки 440
data.loc[ 1001 ] = [data[ «First Name» ][ 440 ],
data[ «Start Date» ][ 440 ],
data[ «Last Login Time» ][ 440 ],
data[ «Senior Management» ][ 440 ],
# длина после добавления строки
# сортировка по имени
# удаление дублирующихся значений
# длина после удаления дубликатов
# печать всех длин фреймов данных
print (length1, length2, length3)
Выход:
Как показано на выходном изображении, длина после удаления дубликатов составляет 999. Поскольку для параметра keep установлено значение False, все дублирующиеся строки были удалены.