Python - заполнить NA значением из предыдущих строк на основе столбца идентификатора

Хотя я согласен с ответом @ ShadowRanger, дешевым взломом может воспользоваться np.nan_to_num , который заменяет infs большими конечными числами, которые затем передадут вам inf * 0 = 0.

Чтобы преобразовать ненужные оставшиеся высокие конечные числа обратно в inf (учитывая некоторые другие операции помимо вашего вопроса), вы можете использовать несколько больших чисел на что угодно> 1, а затем разделить на одну и ту же сумму (чтобы не влиять другие номера). Например:

In [1]: np.nan_to_num(np.inf)
Out[1]: 1.7976931348623157e+308

In [2]: np.nan_to_num(np.inf)*1.1
RuntimeWarning: overflow encountered in double_scalars
Out[2]: inf

In [3]: np.nan_to_num(np.inf)*1.1/1.1
RuntimeWarning: overflow encountered in double_scalars
Out[3]: inf

Перед потоком downvotes это явно не лучшая практика и потенциально может иметь побочные эффекты в зависимости от вашего варианта использования, но просто подумал, что я выбрал бы альтернативу.

0
задан jezrael 27 March 2019 в 13:46
поделиться

1 ответ

Кроме того, альтернативный способ:

data = data.groupby(['Cat1'], as_index = False).apply(lambda group: group.ffill())

Спасибо, @Jezrael за идею решения :))

0
ответ дан Cindy 27 March 2019 в 13:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: