2015-11-20 2 views
2

Мне нужно преобразовать содержимое файла .csv от:Преобразования нескольких столбцов значения в новый ключ, пары значений

continent, region, country, 1990, 1991, 1992, 1993, ... 
Africa, East Africa, Ethiopia, 12, 14, 15, 9, ... 

к:

continent, region, country, year, value 
Africa, East Africa, Ethiopia, 1990, 12 
Africa, East Africa, Ethiopia, 1991, 14 
Africa, East Africa, Ethiopia, 1992, 15 
Africa, East Africa, Ethiopia, 1993, 9 
... 

Есть куча строк, так что это невозможно сделать вручную. Я знаю, что должен быть способ сделать это, у меня действительно есть проблемы, даже объясняющие, что я делаю. Он по существу переносит часть таблицы, но не все.

EDIT: вот пример полного ряда данных:

continent, region, country, country_abbr, economy, lat, long, 1990/91, 1991/92, 1992/93, 1993/94, 1994/95, 1995/96, 1996/97, 1997/98, 1998/99, 1999/00, 2000/01, 2001/02, 2002/03, 2003/04, 2004/05, 2005/06, 2006/07, 2007/08, 2008/09, 2009/10, 2010/11, 2011/12, 2012/13, 2013/14, 2014/15 
Africa, Middle Africa, Angola, AO, 7. Least developed region, -12.5, 18.5, 50, 79, 78, 33, 77, 62, 71, 64, 85, 55, 50, 21, 57, 38, 15, 25, 35, 36, 38, 13, 35, 29, 33, 35, 39 
+0

Значения «год» в настоящее время являются заголовками в файле, а «значение» находится в столбце под ним. Эти слова технически еще не существуют, мне просто нужно кодировать данные по-разному. Каждая строка, существующая в моей существующей таблице, станет 25 новыми строками (вот сколько лет у меня есть). –

ответ

1

Не совсем уверен, что вы подразумеваете под Эти слова технически не существует еще поэтому я переместил country колонки непосредственно перед колонку первого года, и на данный момент я игнорирую все, что слева от country. «Unpivot», как подробно описано here с выбором столбца country столбцу прошлого года и только столько строк, сколько заполнено.

Итоговая таблица должна состоять из трех столбцов с набором из 25 строк для каждой страны. Первый столбец («Строка» - название страны) может использоваться для поиска деталей, которые я игнорировал выше.

Смежные вопросы