1

我在使用生命线进行 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 函数时,我得到 KM 估计的每次迭代worker_type;但是,当尝试导出到csv文件时,我只能得到最后一个工人类型的估计。

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

4

1 回答 1

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

于 2016-07-26T14:08:30.030 回答