连续第一次出现特定值(准备生存分析)- python

First occurrence of a specific value in a row (prepping for survival analysis) - python

我有以下数据(见附件 - 这样更容易)。我试图为每个客户 ID 找到值 0 的第一次出现。然后,我打算使用类似于下面的代码来创建 Kaplan-Meier 曲线:

    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.

(此代码来自here)。

最简单的方法是什么?请注意,我想忽略 NA:我有很多 NA,但无法解决。

谢谢!

我假设所有行都至少包含一个非NaN值。

我们首先要做的一件事就是确保我们在确实存在零的数据帧上进行操作;我们可以用 min.

来完成

这会给我们一个系列,我们只需要 select 在包含零的行上:

df.loc[min_series == 0]

那么,我们可以使用idxmin:

df.idxmin(1, skipna=True)

这应该吐出遇到第一个 0period(我们保证所有行都包含 0)。

那么,这应该能满足您的需求!