with open('old.csv') as oldcsv:
    with open('new.csv', 'w') as newcsv:
        r, w = csv.reader(oldcsv), csv.writer(newcsv)
header = next(r)
w.writerow(['Name', 'Date', 'Reading'])
for row in r:
    for colname, colval in zip(header[1:], row[1:]):
        w.writerow([row[0], colname, colval])
Реорганизуйте CSV, чтобы даты не были заголовками столбцов