使用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
的桥接。
答案 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路径。而是使用正斜杠。