У меня возникли проблемы при разработке алгоритма для следующей задачи: у меня есть два фрейма данных, df1 и df2 (ниже приведен только пример):
import pandas as pd
df1 = pd.DataFrame({'Col1': [1, 7, 10, 50, 73, 80 ], 'Col2': [1,2,3,4,5,6]})
df2 = pd.DataFrame({'Col1': [0, 4, 10, 80], 'Col3': [7,6,8,9]})
Как видите, ониу обоих есть Col1, но значения не всегда совпадают, но в порядке возрастания.Я хочу создать функцию, которая создаст новый столбец на df1, назовем его Col4.Значения в этом столбце должны быть получены из df2 в соответствии с этими правилами:
1) Если df1 и df2 имеют одинаковое значение в Col1, значение в Col4 должно быть соответствующим значением в Col3.
2) Если они не разделяют одно и то же значение в Col1, Col4 должно быть средним между значениями в Col3, которые соответствуют значениям непосредственно до и после него.
Например:
Asdf2 не имеет значения в Col1 для 1, первая запись в Col4 должна быть в среднем от 7 до 6 (1 от 0 до 4).
Я не знаю, ясно ли я высказался, но окончательный результат для Col4 должен быть:
(7 + 6) / 2, (6 + 8) / 2, 8, (8 + 9) / 2, (8 + 9) / 2,9
Было бы неплохо иметь функцию, потому что мне придется выполнять эту операцию для множества различных фреймов данных.
Я знаю, что это странная проблема, но спасибо за помощь!