Есть ли простой способ найти непересекающееся множество записей (что останется на каждом из двух исходных данных, которые не включены в итоговое внутреннее соединение) между двумя базами данных pandas на MultiIndex?Disjoint набор записей из двух pandas DataFrames
Я пропустил что-то довольно очевидное или мне нужно потратить некоторое время на реализацию такого рода функций?
Я попытался сделать это, найдя симметричную разницу между множеством ключей muliIndex двух кадров данных, но это оказалось затруднительным. Я изо всех сил пытаюсь заставить это работать. Моим другим вариантом, который, похоже, может быть немного легче, является добавление фиктивного столбца целых чисел, который может выступать в роли другого отдельного индекса, который сохраняется даже после того, как я делаю слияние multiIndex, поэтому я могу использовать операторы набора python для этот де-факто единственный ключ.
[Обратите внимание, что это связано с, но немного иначе, чем этот вопрос, потому что это слияние не основано на объекте мультииндексных, но по значениям столбцов dataframe: How do I do a SQL style disjoint or set difference on two Pandas DataFrame objects?]
Хорошо, это работает, когда я меняю строку 103 на index2 и последний член в строке 108 на df1.index. Единственная проблема заключается в том, что MultiIndex и размер моих кадров данных заканчиваются тем, что уходят почти на минуту, чтобы вычислить sym_diff. Я думаю, что ваш путь выглядит более элегантным, но то, что я закончил, было немного другим. Я отклоняю индекс до того, как я слился, а затем дважды слился, сохраняя индекс одного кадра в первый раз, а второй - второй раз. Затем я уронил сопоставленные строки по индексу в каждом из исходных столбцов. Это был скорее код, а больше 5 секунд. –
Я напишу свое решение позже сегодня в случае, если это полезно для всех. –
Извините за опечатки, вы правы на обеих учетных записях. Слишком плохо, мой путь был настолько медленным. Уточняются ли ваши индексы раньше времени? Интересно, занимает ли это больше времени или если это заданные операции. – TomAugspurger