【发布时间】:2018-01-03 11:22:57
【问题描述】:
这段非常简单的代码,
# 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)
产生错误:
Traceback(最近一次调用最后一次): 文件 “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 _ _
结果 = getitem(key)
IndexError: 布尔索引与第 0 维的索引数组不匹配;尺寸为 88 但对应 布尔维度为 76
但是,当我打印 df 本身时,一切正常。如您所见,一切都在图书馆内。图书馆的例子工作正常。
【问题讨论】:
-
我们需要您在此处使用的文件,以找出究竟出了什么问题。您能否提供一个不使用外部文件的示例?
-
好吧,很遗憾我无法提供该文件,因为它包含专有信息。但是文件是用 pandas 完美处理的,我可以打印和切片数据。问题的根源是 pandas 还是 CoxPHFitter(生命线)?
-
如果不是数据本身,能否提供以下信息:dataframe中的列,每列的dtype,以及每列中空值和非空值的数量。例如
df.columns、df[column1].dtype、sum(df[column1].isnull())和sum(df[column1].notnull())(对于每一列)。听起来索引没有对齐,这让我想知道 null/NaN 值。
标签: python pandas cox-regression cox lifelines