Если у вас есть только список значений, вы можете использовать понимание списка, чтобы получить результат:
>>> Input_data =[37, 309.15, 38, 310.5]
>>> Output_data = [round((x - 273.15),2) if x > 50 else x for x in Input_data]
>>> Output_data
[37, 36.0, 38, 37.35]
Поскольку вы упомянули столбцы, я полагаю, у вас есть какой-то фрейм данных. Для pandas фрейма данных вы можете использовать лямбда-функцию:
>>> import pandas as pd
>>> df = pd.DataFrame({'Input_data':[37, 309.15, 38, 310.5]})
>>> df
Input_data
0 37.00
1 309.15
2 38.00
3 310.50
>>> df['Output_data'] = df['Input_data'].apply(lambda x: x - 273.15 if x > 50 else x)
>>> df
Input_data Output_data
0 37.00 37.00
1 309.15 36.00
2 38.00 38.00
3 310.50 37.35
Для numpy массивов это выглядит так:
>>> import numpy as np
>>> x = np.array([37, 309.15, 38, 310.5])
>>> x
array([ 37. , 309.15, 38. , 310.5 ])
>>>
>>> y = np.where(x > 50, x - 273.15, x)
>>> y
array([37. , 36. , 38. , 37.35])