在生命线中按属性级别获取生存函数估计值

Getting survival function estimates group by attribute level in Lifelines

我在使用 Lifelines 进行 KM 估算时遇到了挑战。我有一个名为工作人员类型(全职、兼职等)的变量列,我想将其 KM 估计值分组,然后输出到 CSV 文件。这是一个片段:

worker_types = df['Emp_Status'].unique() 

for i, worker_type in enumerate(worker_types): 
    ix = df['Emp_Status'] == worker_type 
    kmf.fit(T[ix], C[ix]) 
    kmf.survival_function_['worker'] = worker_type 
    #print kmf.survival_function_ 
    kmf.surviva

l_function_.to_csv('C:\Users\Downloads\test.csv')

当我使用 print 函数时,我得到每 worker_type 的 KM 估计的每次迭代;但是,当尝试导出到 csv 文件时,我只能得到工人类型的最后估计。

我已经阅读了生命线文档,并看到了绘制不同级别的示例,但不确定如何将其连接到导出到 csv

您可以在循环顶部以追加模式打开文件,然后追加每一行,例如:

worker_types = df['Emp_Status'].unique() 
with open('C:/Users/Downloads/test.csv', 'a') as fou:
    for i, worker_type in enumerate(worker_types): 
        ix = df['Emp_Status'] == worker_type 
        kmf.fit(T[ix], C[ix]) 
        kmf.survival_function_['worker'] = worker_type 
        if i == 0:
            kmf.survival_function_.to_csv(fou) # write header on first iteration
        else:
            kmf.survival_function_.to_csv(fou, header=False)

旁注:请不要对 Python 中的 Windows 路径使用反斜杠。而是使用正斜杠。