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

avatar
Jithesh Erancheri
8 апреля 2018 в 09:57
2546
1
0

Я новичок в Python (особенно в пандах).

У меня есть два фрейма данных df1 и df2. df1 имеет 200 строк. df2 имеет 250 строк. Значения индекса также содержат дубликаты.

df1:
ProcessID
      248
      436
      500
      500

Другой фрейм данных

ProcessID   Day      Time     Status
      248   Sun  23:26:51  completed
      436   Sat  01:50:56  completed
      500   Thu  14:18:21  completed
      500   Wed  23:00:15  Completed

Я хотел узнать, как сравнить оба фрейма данных в pandas на основе идентификатора процесса (который является индексом в обоих df). На основе сравнения я хотел удалить лишние строки в df2.

Было бы очень полезно, если бы кто-нибудь помог мне.

Источник
ytu
8 апреля 2018 в 11:15
0

Говоря «удалить лишние строки в df2», вы хотите, чтобы идентификаторы процессов, которые существуют как в df1, так и в df2, были включены или исключены? Я не понимаю, потому что вы написали «удалить несовпадающие строки» в заголовке.

jpp
8 апреля 2018 в 12:12
0

Предоставьте выдержку из df2 и желаемый результат. Также прочитайте минимально воспроизводимый пример.

Ответы (1)

avatar
habet
8 апреля 2018 в 10:18
1

Вы можете создавать наборы из индекса. и удалите дубликаты, которые есть в обоих индексах

duplicates = set(df1.index).intersection(df2.index)
df2 = df2.drop(duplicates, axis=0)