Подсчет по значению, распределенному по нескольким столбцам в Google Cloud DataPrep

У меня довольно сложная задача по преобразованию данных, которую я не могу понять в программе подготовки Google Cloud Data. Исходные данные - это информация из файла избирателя. В CSV есть 10 столбцов (среди многих других), которые содержат историю участия избирателя в выборах. Смотрите скриншот. Короче говоря, самые последние выборы, за которые вы проголосовали, включаются как text_election_code_1, вторые из последних - в text_election_code_2 и так далее. Значение ячейки - это код выборов, то есть GN2016 = всеобщие выборы 2016 года.

В идеале я хотел бы преобразовать это в поисковую матрицу, чтобы ответить на такие вопросы, как «Голосовал ли избиратель с номером идентификатора в GN2016?» и «Сколько всего человек проголосовало в GN2012?»

На данный момент данные очень сложно подсчитать по коду выборов, потому что «GN2012» может находиться в любом 1 из 10 столбцов. Т.е. на скриншоте ниже GN2012 находится в столбце 3 для первых 2 строк и столбце 2 для 3-й строки.

Я делал это раньше с помощью SQL, но я не могу понять, как это сделать в облачном хранилище данных. Может ли кто-нибудь направить меня в правильном направлении?

Текущая форма данных (другие столбцы P.I.I. не показаны на скриншоте)

Пример столбцов истории выборов

Идеальная форма данных (возможно)

Идеальная форма данных для расчетов


person Jake Lowen    schedule 29.08.2018    source источник


Ответы (1)


Я отказываюсь от «широкого» стола в пользу «длинного». В конце концов, это было довольно легко сделать с помощью опции «unpivot», которая преобразовывала значения столбцов в строки. Этот пример оказался очень полезным: https://cloud.google.com/dataprep/docs/html/Analyze-across-Multiple-Columns_57344575

person Jake Lowen    schedule 30.08.2018