Передать значение в функцию из DataFrame pandas

DataFrame pandas выглядит следующим образом:

          data   period    day  night  квт\день  квт\ночь
0   1705269600  2024-01  26983   9184       NaN       NaN
1   1707948000  2024-02  27130   9239     147.0      55.0
2   1710453600  2024-03  27281   9297     151.0      58.0
3   1713128400  2024-04  27444   9346     163.0      49.0

Мне необходимо:

  1. Взять каждое значение столбца data и передать в функцию которая возвращает стоимость (число)
  2. Полученое число и записать в новый столбец например res['cost']

Пытался:

res['cost']=findStoimostEl(res['data'])

Функция выглядит так :

def findStoimostEl(dat):

    select_movies_query ="SELECT `data_d` FROM `cost_electricity` WHERE '"+str(dat)+"' BETWEEN `data_start` AND `data_end`"
    with db.cursor() as cursor:
        cursor.execute(select_movies_query)
        result = cursor.fetchall()[0][0]

    return result

Выдает ошибку запросса т.к. в функцию передаються значениея вместе с индыксами.

Подскажите как правильно это реализовать. Благодарю!


Ответы (1 шт):

Автор решения: CrazyElf

Попробуйте применить вашу функцию поэлементно к каждому значению столбца, используя функцию map:

res['cost'] = res['data'].map(findStoimostEl)
→ Ссылка