Как использовать DataFrame.isin, когда два фрейма данных имеют разное количество записей (соответствие значений, но индекс не соответствует)? - PullRequest
0 голосов
/ 16 октября 2019

У меня есть два кадра данных (df1 и df2). У них обоих есть столбец «Идентификатор класса», df1 содержит 66 000 записей, а df2 - 60 000 записей. Я хочу проверить, что все значения Class ID в df2 принадлежат df1. Значения Class ID не являются уникальными (есть и некоторые другие столбцы).

Я использую этот код:

print(df1['Class ID'].isin(df2['Class ID']).value_counts())

Это дает результат:

True  59,800
False 200

Однако я извлек все идентификаторы классов, обозначенные как «False», и сравнил их с vimdiff в bash. Все идентификаторы классов, обозначенные как «False», присутствуют в df2. Я прочитал в документации Pandas, что требуется соответствие индекса и метки столбца. Поскольку количество записей в обоих кадрах данных различно, индекс не совпадает, поэтому этот результат отображается. Как решить эту проблему? Любой другой эффективный способ?

1 Ответ

0 голосов
/ 16 октября 2019

почему бы вам не присоединиться к ним в столбце "Class ID". это гораздо лучший способ достичь того, чего вы пытаетесь достичь. Проверь это. https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.join.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...