Como posso transformar linhas em dados baseados em colunas repetidas?

Estou tentando pegar um conjunto de dados que se parece com isso:

E transforme os registros neste formato:

O formato resultante teria duas colunas, uma para os nomes das colunas antigas e uma coluna para os valores. Se houver 10.000 linhas, deverá haver 10.000 grupos de dados no novo formato.

Eu estou aberto a todos os métodos diferentes, fórmulas do Excel, SQL (mysql), ou código Ruby direto funcionaria para mim também. Qual é a melhor maneira de resolver esse problema?

questionAnswers(3)

yourAnswerToTheQuestion