@marselabdullin

Привести сводную таблицу в исходное состояние pandas?

Есть табличка такого формата:
ТГПлан	                                    1    2	  3	 4	5 
TB ресиверы и аксессуары к ТВ СТМ	1,00	1,00	1,00	3,53	2,88
UPS и аксессуары Ippon	               1,00	1,00	1,00	1,58	1,50
Автомобильная эл и Аксессуары СТМ	1,00	1,00	1,00	1,99	1,72
Аксессуары для компьютеров СТМ	       1,00	 1,00	1,00	 1,19	1,28


Надо получить такую

тг план	атрибут	Значение
1	TB ресиверы и аксессуары к ТВ СТМ	1,00
1	UPS и аксессуары Ippon	1,00
1	Автомобильная эл и Аксессуары СТМ	1,00
1	Аксессуары для компьютеров СТМ	1,00
2	TB ресиверы и аксессуары к ТВ СТМ	1,00
2	UPS и аксессуары Ippon	1,00
2	Автомобильная эл и Аксессуары СТМ	1,00
2	Аксессуары для компьютеров СТМ	1,00
3	TB ресиверы и аксессуары к ТВ СТМ	1,00
3	UPS и аксессуары Ippon	1,00
3	Автомобильная эл и Аксессуары СТМ	1,00
3	Аксессуары для компьютеров СТМ	1,00
4	TB ресиверы и аксессуары к ТВ СТМ	3,53
4	UPS и аксессуары Ippon	1,58
4	Автомобильная эл и Аксессуары СТМ	1,99
4	Аксессуары для компьютеров СТМ	1,19
5	TB ресиверы и аксессуары к ТВ СТМ	2,88
5	UPS и аксессуары Ippon	1,50
5	Автомобильная эл и Аксессуары СТМ	1,72
5	Аксессуары для компьютеров СТМ	1,28
  • Вопрос задан
  • 56 просмотров
Решения вопроса 1
@PavelMos
1 сделать датафрейм со колонками ТГПлан,1, 2, 3,4,5
2 в цикле с (1,2,3,4,5) пройтись по выбранным парам столбцов - [тг,1]..[тг,5] и строки из них добавлять в новый список
столбец план пустой ? если он пустой то нужно просто пустой элемент добавлять к строке

arr1 = 
[['ТГПлан', 1, 2, 3, 4, 5],
 ['TB ресиверы и аксессуары к ТВ СТМ', 1.0, 1.0, 1.0, 3.53, 2.88],
 ['UPS и аксессуары Ippon', 1.0, 1.0, 1.0, 1.58, 1.5],
 ['Автомобильная эл и Аксессуары СТМ', 1.0, 1.0, 1.0, 1.99, 1.72],
 ['Аксессуары для компьютеров СТМ', 1.0, 1.0, 1.0, 1.19, 1.28]]

p1 = pandas.DataFrame.from_records(arr1, columns=['tg',1,2,3,4,5])[1:]
out = []
for i in (1,2,3,4,5):
    for index,row  in p1[['tg',i]].iterrows():
        out += [[i,row['tg'],row[i]]]


pprint.pprint(out)
[[1, 'TB ресиверы и аксессуары к ТВ СТМ', 1.0],
 [1, 'UPS и аксессуары Ippon', 1.0],
 [1, 'Автомобильная эл и Аксессуары СТМ', 1.0],
 [1, 'Аксессуары для компьютеров СТМ', 1.0],
 [2, 'TB ресиверы и аксессуары к ТВ СТМ', 1.0],
 [2, 'UPS и аксессуары Ippon', 1.0],
 [2, 'Автомобильная эл и Аксессуары СТМ', 1.0],
 [2, 'Аксессуары для компьютеров СТМ', 1.0],
 [3, 'TB ресиверы и аксессуары к ТВ СТМ', 1.0],
 [3, 'UPS и аксессуары Ippon', 1.0],
 [3, 'Автомобильная эл и Аксессуары СТМ', 1.0],
.......
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы