У меня есть следующий фрейм данных для каждой даты в час, я хочу создать новый столбец «результат», так что если значение в столбце «B» равно> = 0, то использовать значение в столбце A;в противном случае используйте максимум между 0 и предыдущим значением строки в столбце B
Date Hour A B result
1/1/2018 1 5 95 5
1/1/2018 1 16 79 16
1/1/2018 1 85 -6 79
1/1/2018 1 12 -18 0
1/1/2018 2 17 43 17
1/1/2018 2 17 26 17
1/1/2018 2 16 10 16
1/1/2018 2 142 -132 10
1/1/2018 2 10 -142 0
Я попытался сгруппировать по дате и часу, а затем применил лямбда-функцию, используя shift, но получил ошибку:
df['result'] = df.groupby(['Date','Hour']).apply(lambda x: x['A'] if x['B'] >= 0 else np.maximum(0, x['B'].shift(1)), axis = 1)