Наука о данных

3 простых способа сравнить два кадра данных Pandas

Быстро узнайте, как найти общие и необычные строки между двумя пандами DataFrames.

Это простая задача — если вы используете встроенные методы в pandas.

В Python Pandas DataFrame — это простейшая структура данных, в которой вы можете хранить данные в табличной форме, т. е. в виде строк и столбцов, и работать с ними, чтобы получить полезную информацию.

При работе с реальными сценариями одна из распространенных задач аналитиков данных — увидеть, что изменилось в данных. И вы можете сделать это, сравнив два набора данных.

Недавно я разработал автоматизированную систему компьютерного зрения, которая собирает данные с 10 устройств в два разных времени и сохраняет их в 2 пандах DataFrames. Чтобы понять, что изменилось в системе, я сравнил два DataFrames, и именно отсюда пришло вдохновение для этой истории.

Вы можете найти такие приложения для сравнения DataFrame чаще всего при проверке данных, обнаружении изменений данных, тестировании и отладке. Поэтому важно знать, как можно быстро и легко сравнить два набора данных.

Поэтому в этой статье я объясню три лучших, самых простых, надежных и быстрых способа сравнить два кадра данных в pandas. Вы можете получить краткий обзор истории в следующем указателе.

· Сравнить кадры данных Pandas, используя equals()
· Сравнить кадры данных Pandas, используя concat()
· Сравнить кадры данных Pandas, используя compare()

Давайте начнем!

Прежде чем начать с трех способов сравнения двух фреймов данных, давайте создадим два фрейма данных с небольшими различиями в них.

import pandas as pd

df = pd.DataFrame({"device_id": ['D475', 'D175', 'D200', 'D375', 'M475', 'M400', 'M250', 'A150'],
                   "device_temperature": [35.4, 45.2, 59.3, 49.3, 32.2, 35.7, 36.8, 34.9],
                   "device_status": ["Inactive", "Active", "Active", "Active", "Active", "Inactive", "Active", "Active"]})

df1 = pd.DataFrame({"device_id": ['D475', 'D175', 'D200', 'D375', 'M475', 'M400', 'M250', 'A150'],
                   "device_temperature": [39.4, 45.2, 29.3, 49.3, 32.2, 35.7, 36.8, 24.9]…