У меня есть один кадр данных, содержащий столбец идентификаторов id
, и я знаю, что идентификатор будет существовать либо в одной строке («несоответствие»), либо в двух строках («сопоставление») в кадре данных.
- Чтобы выбрать несовпадающие строки и пары совпадающих строк, я могу использовать
groupby
в столбце идентификатора.
- Теперь для каждой группы я хочу взять несколько столбцов из второй (парной) строки, переименовать их и скопировать в первую строку. Затем я могу отбросить все вторые строки и вернуть один кадр данных, содержащий все измененные первые строки (для каждой группы).
- Там, где нет второго ряда (несовпадающего) - можно поставить NaN на его место.
Чтобы проиллюстрировать это, см. Таблицу ниже id=1
и 3
- сопоставленная пара, но id=2
не соответствует:
entity id partner value
A 1 B 200
B 1 A 300
A 2 B 600
B 3 C 350
C 3 B 200
Полученное преобразование должно оставить мне следующее:
entity id partner entity_value partner_value
A 1 B 200 300
A 2 B 600 NaN
B 3 C 350 200
Меня сбивает с толку то, как найти общий способ получения соответствия partner_value
из строки 2, скопированного в строку 1 после группировки, таким образом, который также работает, когда нет соответствующего идентификатора.