Я хочу сгруппировать набор данных временных рядов по отметке времени, где каждая строка в данной группе содержит столбец с именем «name», а затем объединить эти имена в столбцы и создать одну строку с первым ненулевым значением каждогоимя в качестве значения этого столбца.
Например, с учетом DataFrame, подобного этому:
+-----+---------+---------+
| ts | name | value |
+-----+---------+---------+
| 1 | "temp" | "72" |
+-----+---------+---------+
| 1 | "humid" | "30" |
+-----+---------+---------+
| 1 | "fan" | "50%" |
+-----+---------+---------+
| 2 | "temp" | "70" |
+-----+---------+---------+
| 2 | "humid" | "40" |
+-----+---------+---------+
| 2 | "fan" | "30%" |
+-----+---------+---------+
| 3 | "temp" | "68" |
+-----+---------+---------+
| 3 | "humid" | "50" |
+-----+---------+---------+
| 3 | "fan" | "20%" |
+-----+---------+---------+
Я хотел бы получить такой результат:
+-----+---------+--------+--------+
| ts | temp | humid | fan |
+-----+---------+--------+--------+
| 1 | "72" | "30" | "50%" |
+-----+---------+--------+--------+
| 2 | "70" | "40" | "30%" |
+-----+---------+--------+--------+
| 3 | "68" | "50" | "20%" |
+-----+---------+--------+--------+
Я, очевидно, могу сделатьПоворот по имени, который приводит к строке на пару имя / значение, но тогда я не «свернул» строки, чтобы исключить нулевые значения, и имею одну строку, которая связывает все значения для данной временной отметки вместе.Я пытался .pivot("name").agg(first("value", true))
, но это не сработало.