Как преобразовать каждый элемент строки в столбец в python? - PullRequest
1 голос
/ 07 мая 2020

Ввод:

date hour1 hour2 hour3 hour4

1     45   56    34    12

2     48   23    16    56

3     56   65    5     45

Требуемый вывод:

date   hour      value

1      hour1     45

1      hour2     56

1      hour3     34

1      hour4     12

2      hour1     48

2      hour2     23

2      hour3     16

2      hour4     56

1 Ответ

0 голосов
/ 07 мая 2020

Предполагая, что вы сохранили свои данные следующим образом:

data = [
    ['date', 'hour1', 'hour2', 'hour3', 'hour4'], 
    ['1', '45', '56', '34', '12'], 
    ['2', '48', '23', '16', '56'], 
    ['3', '56', '65', '5', '45']
]

Вы можете определить функцию формата строки и распечатать свои данные для желаемого вывода

def formatRow( row ):
    return [ (row[0], row[i]) for i in range( 1, len(row))]

#get the hour1, hour2, hour3 labels, dropping the 'date' header
header = data[0][1:]

#format each of your rows
data = [ formatRow( di ) for di in data[1:] ]

#go through your new data struct and rint the desired output 
for row in data:
    for i, ri in enumerate( row ):
        print( f" {header[i]} ".join( ri ))

output

1 hour1 45
1 hour2 56
1 hour3 34
1 hour4 12
2 hour1 48
2 hour2 23
2 hour3 16
2 hour4 56
3 hour1 56
3 hour2 65
3 hour3 5
3 hour4 45
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...