Я смотрю на создание алгоритма, где, если views_per_hour в 2 раза больше, чем Average_views_per_hour, я даю каналу 5 баллов; если он в 3 раза больше, я даю ряду 10 баллов, а если он в 4 раза больше, я даю ряду 20 баллов. Я не совсем уверен, как это сделать, и был бы очень признателен за помощь.
df = pd.DataFrame({'channel':['channel1','channel2','channel3','channel4'], 'views_per_hour_today':[300,500,2000,100], 'average_views_per_hour':[100,200,200,50],'points': [0,0,0,0] })
df.loc[:, 'average_views_per_hour'] *= 2
df['n=2'] = np.where((df['views_per_hour'] >= df['average_views_per_hour']) , 5, 0)
df.loc[:, 'average_views_per_hour'] *= 3
df['n=3'] = np.where((df['views_per_hour'] >= df['average_views_per_hour']) , 5, 0)
df.loc[:, 'average_views_per_hour'] *= 4
df['n=4'] = np.where((df['views_per_hour'] >= df['average_views_per_hour']) , 10, 0)
Я ожидал, что смогу суммировать результаты из столбцов n = 2, n = 3, n = 4 для каждой строки в столбце «Точки», но столбцы всегда показывают либо 5, либо 10, а не 0 ( Код считает, что views_per_hour всегда больше, чем average_views_per_hour, даже когда average_views_per_hour умножается на большое целое число.)