@kOFFtan

Не получается решить задачу в Яндекс.Практикуме. Основы Python и анализа данных, тема 7, урок 9?

Этот код работает, но программа не принимает ответ, подскажите что я пропустил?

При проверке выдает:
Не правильное значение переменной error_yield
Item 0:
2549811575.1209617
^

1. Вычислите ошибки предсказаний для первой стратегии — площадь посевов реальная, а урожайность прошлогодняя.
Создайте список error_acres и добавьте в него разницу реального и предсказанного объёма урожая за каждый год, кроме 1980-го. Чтобы не запутаться с индексами, не создавайте отдельный список для предсказаний, как в предыдущем уроке. Вместо этого сразу вычитайте произведение реальной площади посевов и прошлогодней урожайности из реального объёма урожая за определённый год.
Затем постройте столбчатую диаграмму, на которой по оси X отмечены года, начиная с 1981-го, а по оси Y — значения error_acres.

2. Проделайте то же самое для второй стратегии — площадь посевов прошлогодняя, а урожайность настоящая. Результаты сохраните в списке error_yield. Затем постройте столбчатую диаграмму, на которой по оси X отмечены года, начиная с 1981-го, а по оси Y — значения error_yield.

Первая задача была решена без проблем.
Буду признателен, кто направит к решению задачи. Спасибо!

import pandas
data = pandas.read_csv('crops_usa.csv')

acres = list(data['Acres'])
production = list(data['Production'])
years = list(data['Year'])

acres_usa = []
production_usa = []

for year in range(1980, 2020):
    acres_one_year = []
    production_one_year = []
    for index in range(len(data)):
        if years[index] == year:
            acres_one_year.append(acres[index])
            production_one_year.append(production[index])
    acres_usa.append(sum(acres_one_year))
    production_usa.append(sum(production_one_year))

yield_usa = []

for index in range(len(production_usa)):
    yield_usa.append(production_usa[index] / acres_usa[index])
years_numbers = list(range(1980, 2020))
    
error_yield = []
for index in range(1, len(production_usa)):
    error_yield.append(acres_usa[index - 1] * yield_usa[index])

import seaborn
seaborn.barplot(x = years_numbers[1:], y = error_yield)
  • Вопрос задан
  • 15591 просмотр
Решения вопроса 1
import pandas
data = pandas.read_csv('crops_usa.csv')

acres = list(data['Acres'])
production = list(data['Production'])
years = list(data['Year'])

acres_usa = []
production_usa = []

for year in range(1980, 2020):
    acres_one_year = []
    production_one_year = []
    for index in range(len(data)):
        if years[index] == year:
            acres_one_year.append(acres[index])
            production_one_year.append(production[index])
    acres_usa.append(sum(acres_one_year))
    production_usa.append(sum(production_one_year))

yield_usa = []

for index in range(len(production_usa)):
    yield_usa.append(production_usa[index] / acres_usa[index])
years_numbers = list(range(1980, 2020))
    
error_yield = []

for index in range(1, len(yield_usa)):
    error_yield.append(production_usa[index] - acres_usa[index-1] * yield_usa[index])
    
import seaborn

seaborn.barplot(x=years_numbers[1:], y=error_yield)
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Ne_Anna
Поделитесь файлом 'crops_usa.csv', пожалуйста
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы