Python中的生命线布尔索引与维度0的索引数组不匹配;维度为88但对应的布尔维度为76

时间:2018-01-03 11:22:58

标签: python pandas cox-regression cox lifelines

这段非常简单的代码,

# 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:\用户\ ... \应用程序数据\本地\畅达\畅达\ ENVS \ hrpred \ LIB \站点包\ \生命线钳工\ 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 _ _

     

result = getitem(key)

     

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

然而,当我打印 df 本身时,一切都很好。如您所见,一切都在图书馆内。图书馆的例子很好用。

1 个答案:

答案 0 :(得分:0)

在不知道你的数据是什么样的情况下 - 我有同样的错误,当我从大熊猫df中删除了所有但持续时间,事件和系数时,我已经解决了这个问题。也就是说,我在df中有很多额外的列混淆了cox PH fitter,因为你实际上没有指定你想要包含哪个coef作为cph.fit()的参数。