There is a Pandas dataframe: performer hits chart_debut time_on_chart consecutive_weeks decade num_of_hits 3428 Glee Cast Somebody To Love, Friday, Loser Like Me, Baby,... 2009 290 47.0 2000-2010 191 8478 Taylor Swift Fifteen, Fearless, London Boy, Teardrops On My... 2008 14299 11880.0 2000-2010 166 2543 Drake Summer Sixteen, The Language, Weston Road Flow... 2016 7449 6441.0 2010-2020 125 10397 YoungBoy Never Broke Again Kacey Talk, Put It On Me, Dirty Iyanna, Lil To... 2020 1012 625.0 2020-2030 75 458 Aretha Franklin Chain Of Fools, My Song, Respect, Until You Co... 1967 3490 2921.0 1960-1970 66 8625 The Beatles Sgt. Pepper's Lonely Hearts Club Band/With A L... 1978 3548 2798.0 1970-1980 66 Write a function year_leaders that will build a new dataframe and leave 1 line of performer and hits (having a maximum number of num_of_hits) in each chart_debut value
def year_leaders(df): df = df.copy() df.drop(columns=['time_on_chart', 'consecutive_weeks', 'decade', 'num_of_hits'], inplace=True) years = df.chart_debut.unique() year_leaders_df = pd.DataFrame() for year in years: year_df = df[df.chart_debut == year] year_max_row = year_df.loc[year_df.num_of_hits.idxmax()] year_leaders_df = year_leaders_df.append(year_max_row, ignore_index=True) return year_leaders_df