Давайте предположим, что у меня есть следующий фрейм данных:
df = pd.DataFrame({"id": [1, 1, 1, 2, 2], "nominal": [1, np.nan, 1, 1, np.nan], "numeric1": [3, np.nan, np.nan, 7, np.nan], "numeric2": [2, 3, np.nan, 2, np.nan], "numeric3": [np.nan, 2, np.nan, np.nan, 3], "date":[pd.Timestamp(2005, 6, 22), pd.Timestamp(2006, 2, 11), pd.Timestamp(2008, 9, 13), pd.Timestamp(2009, 5, 12), pd.Timestamp(2010, 5, 9)]})
В качестве вывода я хочу получить фрейм данных, который будет указывать количество дней, прошедших с тех пор, как не былозначение было видно для этого столбца, для этого id
.Если столбец имеет значение для соответствующей даты или если столбец не имеет значения в начале для нового id
, значение должно быть равно 0. Кроме того, предполагается, что оно рассчитывается только длячисловые столбцы.С учетом сказанного выходной фрейм данных должен быть:
output_df = pd.DataFrame({"numeric1_delta": [0, 234, 1179, 0, 362], "numeric2_delta": [0, 0, 945, 0, 362], "numeric3_delta": [0, 0, 945, 0, 0]})
Ждем ваших ответов!