Ситуация :
У меня есть датафрейм pandas, где у меня есть некоторые данные о производстве продукта. Продукт производится в 3 этапа. Фазы не фиксированы, что означает, что их циклы (время до последнего) меняется. На каждом этапе производства измеряется температура продукта.
Пожалуйста, смотрите таблицу ниже:
Проблема :
Мне нужно рассчитать наклон для каждого цикла каждой фазы для каждого продукта. Мне также нужно добавить его в фрейм данных в новом столбце под названием «Наклон». Тот, который вы видите, выделенный желтым цветом, был добавлен мной вручную в файл Excel. Реальный набор данных содержит сотни параметров (не только температуры), поэтому на самом деле мне нужно вычислить наклон для множества столбцов, поэтому я попытался определить функцию.
Мое решение не работает вообще :
Это код, который я пробовал, но он не работает. Я пытаюсь поймать первый и последний ряд для данного продукта, для данного этапа. А затем получить данные о температуре и разницу этих двух строк. И так я мог рассчитать наклон.
Это все, что я мог придумать (я создал еще один столбец с именем «Max_cylce_no», в котором хранится максимальное количество циклов для каждой фазы):
temp_at_start=-1
def slope(col_name):
global temp_at_start
start_cycle_no = 1
if row["Cycle"]==1:
temp_at_start =row["Temperature"]
start_row = df.index(row)
cycle_numbers = row["Max_cylce_no"]
last_cycle_row = cycle_numbers + start_row
last_temp = df.loc[last_cycle_row, "Temperature"]
И как бы я хотел это применить:
df.apply(slope("Temperature"), axis=1)
К сожалению, я сразу же получаю NameError, сообщая, что: имя 'row' не определено.
Не могли бы вы помочь мне и показать правильное направление, как решить эту проблему. Это дает мне действительно тяжелое время. (
Заранее спасибо!