У меня есть два кадра данных, которые я хотел бы объединить в зависимости от определенных условий. Это первый кадр данных, каждая строка представляет одно наблюдение (таким образом, идентификаторы встречаются несколько раз):
df1
ID Count Publication
0 A 10 1990
1 B 15 1990
2 A 17 1990
3 B 19 1991
4 A 13 1991
Это второй кадр данных. Здесь каждый идентификатор отображается только один раз, но с течением времени (здесь с 1990 по 1993 год).
df2
ID 1990 1991 1992 1993
0 A 1.1 1.2 1.3 1.4
1 B 2.3 2.4 2.4 2.6
2 C 3.4 3.5 3.6 3.7
3 D 4.5 4.6 4.7 4.8
Моя цель - добавить столбец результатов в df1, в котором я умножаю значение из столбца df1 ["Count"] на соответствующее значение (пара ID-год) из df2, например, первая строка: «ID» A в «1990» умножается на 1,1 на «Count» 10 = 11.
results
ID Count Publication Results
0 A 10 1990 11.0
1 B 15 1990 34.5
2 A 17 1990 18.7
3 B 19 1991 45.6
4 A 13 1991 15.6
До сих пор я пробовал несколько вариантов, используя функцию панд .apply()
, но она не работала. Я также пытался .merge()
столбцы от df2 до df1, основываясь на идентификаторах, но я все еще не могу выполнить вычисление впоследствии (я надеялся, что это облегчает проблему).
Вопрос: Есть ли простой и эффективный способ пройти через df1 строка за строкой и «выбрать» соответствующие значения из df2 для расчета?