0

这段非常简单的代码,

# imports...
from lifelines import CoxPHFitter
import pandas as pd

src_file = "Pred.csv"

df = pd.read_csv(src_file, header=0, delimiter=',')
df = df.drop(columns=['score'])

cph = CoxPHFitter()
cph.fit(df, duration_col='Length', event_col='Status', show_progress=True)

产生错误:

回溯(最后一次调用):文件“C:/Users/.../predictor.py”,第 11 行,在 cph.fit(df, duration_col='Length', event_col='Status', show_progress=True)

文件“C:\Users\...\AppData\Local\conda\conda\envs\hrpred\lib\site-packages\lifelines\fitters\coxph_fitter.py”,第 298 行,适合 self._check_values(df)

文件“C:\Users\...\AppData\Local\conda\conda\envs\hrpred\lib\site-packages\lifelines\fitters\coxph_fitter.py”,第 323 行,在 _check_values cols = str(list(X .columns[low_var]))

文件“C:\Users\...\AppData\Local\conda\conda\envs\hrpred\lib\site-packages\pandas\core\indexes\base.py”,第 1754 行,在 _ _ getitem _ _

结果 = 获取项目(键)

IndexError:布尔索引与维度 0 上的索引数组不匹配;维度为 88,但对应的布尔维度为 76

但是,当我打印df本身时,一切都很好。如您所见,一切都在图书馆内。图书馆的例子工作得很好。

4

1 回答 1

0

在不知道您的数据是什么样子的情况下 - 我遇到了同样的错误,当我从我正在使用的 pandas df 中删除除持续时间、事件和系数之外的所有内容时,该错误得到了解决。也就是说,我在 df 中有很多额外的列让 cox PH fitter 感到困惑,因为您实际上并没有指定要包含哪个 coef 作为 cph.fit() 的参数。

于 2018-01-23T02:43:38.527 回答