Как разделить фрейм данных pyspark, взяв часть данных для каждого отдельного идентификатораPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как разделить фрейм данных pyspark, взяв часть данных для каждого отдельного идентификатора

Сообщение Anonymous »

Я работаю с фреймом данных pyspark (на Python), содержащим данные временных рядов. Данные получили такую ​​структуру:

Код: Выделить всё

event_time  variable value   step   ID
1456942945  var_a    123.4    1      id_1
1456931076  var_b    857.01   1      id_1
1456932268  var_b    871.74   1      id_1
1456940055  var_b    992.3    2      id_1
1456932781  var_c    861.3    2      id_1
1456937186  var_c    959.6    3      id_1
1456934746  var_d    0.12     4      id_1

1456942945  var_a    123.4    1      id_2
1456931076  var_b    847.01   1      id_2
1456932268  var_b    871.74   1      id_2
1456940055  var_b    932.3    2      id_2
1456932781  var_c    821.3    3      id_2
1456937186  var_c    969.6    4      id_2
1456934746  var_d    0.12     4      id_2
Для каждого идентификатора я получил значение каждой переменной на определенном «шаге».
Мне нужно подмножество этого кадра данных, как показано ниже
Strong>: для каждого идентификатора возьмите все строки, соответствующие шагам 1, 2, 3, и часть данных шага 4, начиная со значения времени first_event шага 4, скажем, первых 25%. Это порционирование должно выполняться с учетом времени события.
Я могу сделать это для одного идентификатора после подмножества DF на основе этого идентификатора:

Код: Выделить всё

# single step partitioning
threshold_value = DF.selectExpr(f"percentile_approx({"event_time"}, {0.25}) as threshold").collect()[0]["threshold"]

partitioned_df= DF.filter(col(column_name) 

Подробнее здесь: [url]https://stackoverflow.com/questions/79126205/how-to-split-a-pyspark-dataframe-taking-a-portion-of-data-for-each-different-id[/url]
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»