это мой первый вопрос по StackOverflow, поэтому прошу прощения, если я не достаточно ясен. Я обычно нахожу здесь свои ответы, но на этот раз мне не повезло. Может быть, я плотный, но здесь у нас go.
У меня есть два pandas кадра данных, отформатированных следующим образом
df1
+------------+-------------+
| References | Description |
+------------+-------------+
| 1,2 | Descr 1 |
| 3 | Descr 2 |
| 2,3,5 | Descr 3 |
+------------+-------------+
df2
+--------+--------------+
| Ref_ID | ShortRef |
+--------+--------------+
| 1 | Smith (2006) |
| 2 | Mike (2009) |
| 3 | John (2014) |
| 4 | Cole (2007) |
| 5 | Jill (2019) |
| 6 | Tom (2007) |
+--------+--------------+
В основном Ref_ID в df2 содержит идентификаторы, которые образуют строку, содержащуюся в поле Ссылки в df1
Я хотел бы заменить значения в поле References на df1 , чтобы оно выглядело так:
+-------------------------------------+-------------+
| References | Description |
+-------------------------------------+-------------+
| Smith (2006); Mike (2009) | Descr 1 |
| John (2014) | Descr 2 |
| Mike (2009);John (2014);Jill (2019) | Descr 3 |
+-------------------------------------+-------------+
До сих пор мне приходилось иметь дело со столбцами и идентификаторами с отношением 1-1, и это прекрасно работает Pandas - Замена значений путем поиска в другом кадре данных
Но я не могу разобраться с этой немного другой проблемой. Единственное решение, о котором я могу подумать, - это повторить циклы for и if, которые сравнивают каждую строку df1 с df2 и производят замену.
Это будет, я боюсь, очень медленно, так как у меня ок. 2000 уникальных Ref_ID s, и я должен повторить эту операцию в нескольких столбцах, аналогичных References one.
Кто-нибудь желает указать мне правильное направление?
Заранее большое спасибо.