Advertisement
Dront

Untitled

Oct 15th, 2019
200
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.66 KB | None | 0 0
  1. def filter_by_genre(data, genre):
  2. result = []
  3. for row in data:
  4. genres = row[4]
  5. if genre in genres:
  6. result.append(row)
  7. return result
  8.  
  9. def column_sum(data, column):
  10. result = 0
  11. for row in data:
  12. result += row[column]
  13. return result
  14.  
  15. def column_mean(data, column):
  16. total = column_sum(data, column)
  17. mean = total / len(data)
  18. return mean
  19.  
  20. def add_roi(data):
  21. for i in range(len(data)):
  22. budget = data[i][5]
  23. gross = data[i][6]
  24. roi = (gross - budget) / budget
  25. data[i].append(roi)
  26.  
  27. def add_price_per_minute(data):
  28. for i in range(len(data)):
  29. length = data[i][3]
  30. budget = data[i][5]
  31. price_per_minute = budget / length
  32. data[i].append(price_per_minute)
  33.  
  34. # переменная с выбранными жанрами (англ. selected genres, "избранные жанры")
  35. selected_genres = ['история', 'мелодрама', 'криминал', 'биография', 'триллер']
  36.  
  37. # добавьте в таблицу столбцы с ROI и стоимостью одной минуты фильма
  38. # воспользуйтесь для этого функциями add_roi() и add_price_per_minute()
  39. # < напишите код здесь >
  40.  
  41. genres_means = []
  42. for genre in selected_genres:
  43. # отфильтруйте таблицу по жанру
  44. filt_data = filter_by_genre(oscar_data, genre)
  45. # < напишите код здесь >
  46.  
  47. # посчитайте средние значения по отфильтрованной таблице
  48.  
  49. # средняя оценка (индекс столбца 2)
  50. mean_score = column_mean(filt_data, 2)
  51. # < напишите код здесь >
  52.  
  53. # средняя длина (индекс столбца 3)
  54. mean_length = column_mean(filt_data, 3)
  55. # < напишите код здесь >
  56.  
  57. # среднее значение ROI (индекс столбца 7)
  58. mean_roi =add_roi(filt_data, 7)
  59. # < напишите код здесь >
  60.  
  61. # средняя цена за минуту (индекс столбца 8)
  62. mean_ppm = add_price_per_minut(filt_data, 8)# < напишите код здесь >
  63.  
  64. genres_means.append([genre, mean_score, mean_length, mean_roi, mean_ppm])
  65.  
  66. print('Жанр | Рейтинг | Длина | ROI | Бюджет за минуту')
  67. print('-------------------------------------------------------')
  68. for row in genres_means:
  69. print('{: <9} | {: >7.2f} | {: >5.2f} | {: >5.2f} | {: >16.2f}'.format(
  70. row[0], row[1], row[2], row[3], row[4]))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement