df['count'] = df.groupby('color').cumcount() + 1
pvt1 = df.pivot(columns='count', index='color', values='line').reset_index(
    ).fillna('')
Pandas — создание нескольких столбцов, подобных pd.get_dummies