У меня есть следующий пример набора данных
df = pd.DataFrame({'Id': {0:'user_id1', 1:'user_id1', 2:'user_id1', 3:'user_id1',
4:'user_id2', 5:'user_id2', 6:'user_id2'},
'hr' :{0:1, 1:2, 2:3, 3:4, 4:1, 5:2, 6:3},
'value': {0:17, 1:20, 2:12, 3:10, 4:11, 5:20, 6:13},
'result': {0:12, 1:21, 2:32, 3:16, 4:41, 5:50, 6:53}})
df
Первое: каждый пользователь должен иметь значение в столбце result и value в каждый час ( hr ). Но если нет значения или результата , тогда я должен создать пропущенный час ( ч ) и добавить новую строку со значением медианы для каждого столбца. Час всегда находится в диапазоне от 1 до 4.
Пример: - user_id2 не имеет записи в ч = 4 . Итак, я возьму медиану других часов из результат столбец, т. Е.
np.median ([[41, 50, 53]) => 50.
Аналогично для значение столбец:
np.median ([11, 20, 13]) = 13
Это приведет к добавлению новой строки для user_id2 в ч = 4 , как показано ниже:
Наконец: я хочу преобразовать вышеуказанный длинный формат в более широкий, чтобы каждый user_id {i} имел все значения, представленные в одном векторе [raw] для ч как показано ниже:
Я ценю любую помощь.