Глядя на информационный фрейм панд, содержащий информацию обо всех олимпийских спортсменах за последние 150 лет (имя, вес, страна, спорт и т. Д.). Доступно в https://www.kaggle.com/heesoo37/120-years-of-olympic-history-athletes-and-results#athlete_events.csv.
Предварительный просмотр кадра данных
Попытка создать цикл for, который перебирает строки df, проверяет значение, хранящееся в «Sport»column против нескольких списков, а затем добавляет столбец в df с родительской категорией в той же строке. Код на данный момент:
aquatic_sports = ['Swimming','Diving','Synchronized Swimming','Water Polo']
track_sports = ['Athletics','Modern Pentathlon','Triathlon','Biathlon','Cycling']
team_sports = ['Softball','Basketball','Volleyball','Beach Volleyball','Handball','Rugby','Lacrosse']
gymnastic_sports = ['Gymnastics','Rhytmic Gymnastics','Trampolining']
fitness_sports = ['Weightlifting']
combat_sports = ['Boxing','Judo','Wrestling','Taekwondo']
winter_sports = ['Short Track Speed Skating','Ski Jumping','Cross Country Skiing','Luge','Bobsleigh','Alpine Skiing','Curling','Snowboarding','Ice Hocky','Hockey','Speed Skating']
for index, row in df.iterrows():
if df.iloc[0,11] in aquatic_sports:
df['Sport Category'] = 'Aquatic Sport'
elif df.iloc[0,11] in track_sports:
df['Sport Category'] = 'Track Sport'
elif df.iloc[0,11] in gymnastic_sports:
df['Sport Category'] = 'Gymnastic Sport'
elif df.iloc[0,11] in fitness_sports:
df['Sport Category'] = 'Fitness Sport'
elif df.iloc[0,11] in combat_sports:
df['Sport Category'] = 'Combat Sport'
elif df.iloc[0,11] in winter_sports:
df['Sport Category'] = 'Winter Sport'
Ошибок нет, но, к сожалению, все значения в новом столбце совпадают. Не знаете, как передать текущий индекс, чтобы каждая итерация возвращала уникальное правильное значение.