Логический индекс Lifelines в Python не соответствует индексированному массиву по измерению 0; размер равен 88, но соответствующий логический размер равен 76

Этот очень простой фрагмент кода,

# 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 _ _

результат = getitem (ключ)

IndexError: логический индекс не соответствует индексированному массиву по измерению 0; размер равен 88, но соответствующий логический размер равен 76

Однако когда я печатаю сам df, все в порядке. Как видите, все внутри библиотеки. И примеры библиотеки работают нормально.


person slesher    schedule 03.01.2018    source источник
comment
Нам потребуются файлы, которые вы используете здесь, чтобы выяснить, что именно происходит не так. Не могли бы вы привести пример, в котором внешние файлы не используются?   -  person 1313e    schedule 03.01.2018
comment
К сожалению, я не могу предоставить файл, потому что он содержит конфиденциальную информацию. Но файл отлично обрабатывается с пандами, я могу печатать и нарезать данные. Корень проблемы в пандах или CoxPHFitter (спасательные круги)?   -  person slesher    schedule 12.01.2018
comment
Если не сами данные, можете ли вы предоставить следующую информацию: столбцы в фрейме данных, dtype каждого столбца и количество нулевых и ненулевых значений в каждом столбце. например df.columns, df[column1].dtype, sum(df[column1].isnull()) и sum(df[column1].notnull()) (для каждого столбца). Похоже, что индексы не выравниваются, что заставляет меня задаться вопросом о значениях null / NaN.   -  person TCAllen07    schedule 26.04.2018


Ответы (1)


Не зная, как выглядят ваши данные - у меня была та же ошибка, которая была решена, когда я удалил все, кроме продолжительности, события и коэффициента (ов) из pandas df, которые я использовал. То есть у меня было много дополнительных столбцов в df, которые сбивали с толку установщика cox PH, поскольку вы фактически не указывали, какой коэффициент вы хотите включить в качестве аргумента в cph.fit ().

person La Pet    schedule 23.01.2018