У меня есть следующие данные (см. вложение - так проще). Я пытаюсь найти первое вхождение значения 0 для каждого идентификатора клиента. Затем я планирую использовать код, аналогичный приведенному ниже, для создания кривой Каплана-Мейера:
from lifelines import KaplanMeierFitter
## Example Data
durations = [5,6,6,2.5,4,4]
event_observed = [1, 0, 0, 1, 1, 1]
## create a kmf object
kmf = KaplanMeierFitter()
## Fit the data into the model
kmf.fit(durations, event_observed,label='Kaplan Meier Estimate')
## Create an estimate
kmf.plot(ci_show=False) ## ci_show is meant for Confidence interval, since our data set is too tiny, thus i am not showing it.
(это код из здесь).
Какой самый простой способ сделать это? Обратите внимание, что я хочу игнорировать NA: у меня их много, и от этого никуда не деться.
Спасибо!






Я предполагаю, что все строки содержат хотя бы одно значение, отличное от NaN.
Одна вещь, которую нам нужно сделать в первую очередь, это просто убедиться, что мы работаем с кадром данных, где действительно есть ноль; мы можем сделать это с помощью мин.
Это даст нам серию, и нам просто нужно выбрать строки, содержащие ноль:
df.loc[min_series == 0]
Затем мы можем использовать idxmin:
df.idxmin(1, skipna=True)
Это должно выдавать period, на котором встречается первое 0 (мы гарантировали, что все строки содержат 0).
Тогда это должно дать вам то, что вы ищете!