I have a dataset for esports matches and I want to associate competition with each match row
Time team1 team2 score1 score2 0 Competition1 nan nan nan nan 1 2/15/2021 4:30 AM Reckoning Headshot 1 0 2 Competition2 nan nan nan nan 3 2/15/2021 9:00 AM Movistar Riders 1 0 4 2/15/2021 10:00 AM eMonkeyz G2 Arctic 0 1
I want it like that:
Competition Time team1 team2 score1 score2 0 Competition1 2/15/2021 4:30 AM Reckoning Headshot 1 0 1 Competition2 2/15/2021 9:00 AM Movistar Riders 1 0 2 Competition2 2/15/2021 10:00 AM eMonkeyz G2 Arctic 0 1
Advertisement
Answer
Let us try where with ffill after select the string with startswith
df['Competition'] = df.Time.where(df.Time.str.startswith('Competition')).ffill()
df.dropna(inplace=True)
df
Out[118]: 
               Time      team1     team2  score1  score2   Competition
1   2/15/20214:30AM  Reckoning  Headshot     1.0     0.0  Competition1
3   2/15/20219:00AM   Movistar    Riders     1.0     0.0  Competition2
4  2/15/202110:00AM   eMonkeyz  G2Arctic     0.0     1.0  Competition2
