Python

Не получается решить задачу по Python, как решить?

Здраствуйте! Помогите пожалуйста в решение задачи!
1.Проверьте, за какие года есть данные в датасете. Создайте список years_unique, сохраните в нём уникальные значения из столбца Year и выведите этот список на экран. На следующей строчке выведите на экран длину списка years_unique.
(Подсказка - Создайте пустой список years_unique. Далее напишите цикл for, который пройдёт по всем элементам столбца data['Year']. В теле цикла опишите условие: если значения переменной цикла ещё нет в списке years_unique — добавить его в этот список. Чтобы узнать длину полученного списка и вывести её на экран, вызовите функцию len() в скобках print().)

Код:
import pandas
data = pandas.read _csv('crops_usa.csv')

# создайте список years_unique

# добавьте в него уникальные значения из Year

print(years_unique)
print() # выведите длину списка years_unique

Я написал:
import pandas
data = pandas.read _csv('crops_usa.csv')
years_unique = []
# добавьте в него уникальные значения из Year
for index in range (len(data)):
if (data['Year'] [index] == [index]) :
years_unique.append(data['Year'] [index])
print(years_unique)
print() # выведите длину списка years_unique

Но выдает ошибку: "Проверьте значение переменной years_unique)"
В задании сказано цикл по data["Year"] делать, а ты делаешь просто по data. И проверка на наличие элемента в списке не так делается. ( if ... in list )
Zhenis Malkeyev
Zhenis Malkeyev
34 940
Лучший ответ
То что у меня получилось с циклом
 import pandas as pd 

data = [
{'id': 1, 'year': 2010},
{'id': 2, 'year': 2010},
{'id': 3, 'year': 2012},
{'id': 4, 'year': 2012},
{'id': 5, 'year': 2012},
]



df = pd.DataFrame(data)


# создайте список years_unique
years_unique = []

# добавьте в него уникальные значения из Year
for year in df['year']:
if year in years_unique:
continue
years_unique.append(year)


print(len(years_unique))
print(years_unique)
И второй вариант без for
 years_unique = df.drop_duplicates(['year']) 
years_unique = list(years_unique['year'])
print(len(years_unique))
print(years_unique)
import pandas
data = pandas.read _csv('crops_usa.csv')
years_unique = []
for index in data['Year']:
if index not in years_unique:
years_unique.append(index)
print(years_unique)
print(len(years_unique))
Andrei Lekh
Andrei Lekh
224
import pandas
data = pandas.read _csv('crops_usa.csv')

years_unique = []# создайте список years_unique

for i in data['Year']:
if i not in years_unique:
years_unique.append(i)# добавьте в него уникальные значения из Year

print(years_unique)
print(len(years_unique)) # выведите длину списка years_unique
import pandas
data = pandas.read _csv('crops_usa.csv')

years_unique = [] # создайте список years_unique

for index in data['Year']:
if index not in years_unique:
years_unique.append(index) # добавьте в него уникальные значения из Year

print(years_unique)
print(len(years_unique))
та же проблема, какой код в итоге должен быть, подскажите, пожалуйста?
Петр Миронов import pandas
data = pandas.read _csv('crops_usa.csv')
years_unique = []
for index in (data['Year']):
if index not in years_unique:
years_unique.append(index)
print(years_unique)
print(len(years_unique))
import pandas
data = pandas.read _csv('crops_usa.csv')

years_unique = [] # создайте список years_unique

for index in data['Year'] : # добавьте в него уникальные значения из Year
if index not in years_unique:
years_unique.append(index)


print(years_unique)
print(len(years_unique)) # выведите длину списка years_unique
есть ещё подобное задание, по которому я перешла сюда, и нашла решение сама, так что напишу его для таких, как я)
import pandas
data = pandas.read _csv('crops_usa.csv')
years_unique = data['Year'].unique()
years_unique_count = data['Year'].nunique()
print(years_unique)
print(years_unique_count)