После сброса лет:
del test['Year']
Вы можете сгруппировать строки, добавив дополнительный столбец со строкой «index» для каждой строки, принадлежащей одной и той же компании.
test['idx'] = test.groupby('Comp_id').cumcount() + 1
Затем установите его как часть в качестве индекса DataFrame и используйте unstack()
, чтобы превратить его в столбцы.
test = test.set_index(['Comp_id', 'idx']).unstack()
На этом этапе ваши столбцы будут мультииндексами с созданным 'idx'
в качестве второго уровня, так что вы уже можете использовать DataFrame в том виде, в каком он стоит, ссылаясь на столбцы как ('Sales', 1)
, ('Sales', 2)
, et c.
Если вы хотите сгладить столбцы, используйте подчеркивание в качестве разделитель, вы можете сделать это с помощью:
test.columns = ['{}_{}'.format(col, idx) for (col, idx) in test.columns]