在生命线上按属性级别获得生存函数估计组

时间:2016-07-26 13:50:06

标签: python pandas dataframe lifelines

使用Lifelines进行KM估算时遇到了挑战。我有一个名为worker type(Full Time,Part Time等)的变量列,我想将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的桥接。

1 个答案:

答案 0 :(得分:0)

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

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路径。而是使用正斜杠。