У меня есть pandas DataFrame
с двумя столбцами, один из которых содержит числовые данные, а другой - логическое значение.
Хотя числовой столбец в принципе может иметь много разных значений в контексте эксперимента который генерировал данные, может иметь место только небольшой набор значений c, например, [1.0, 1.2, 1.4, 1.6]
. Более того, не каждый набор данных (фрейм) на самом деле содержит все эти возможные значения.
Теперь я хочу сделать две разные вещи с каждым набором данных:
Вычислить таблицу сопряженности pandas.crosstab
, но так, чтобы каждое возможное значение было указано в таблице (хотя и с записью 0) для каждого набора данных. Чтобы убедиться, что это произошло, я преобразовал соответствующий столбец в категориальный, используя
.astype('category').cat.set_categories(possible_values)
Подходит регрессионную модель логистики c, используя statmodels.Logit
. К сожалению, Logit
жалуется, когда переменная является категориальной, и это правильно, поскольку регрессия по категориальной переменной не определена.
Вопрос: Есть ли способ сообщить pandas, каковы возможные значения Series
, чтобы получить полную таблицу непредвиденных обстоятельств, не нарушая statsmodels?
Я знаю, что могу обойти это, просто имея два разных Series
одно числовое и одно категориальное. Но это кажется мне очень неуместным, и мне интересно, есть ли лучший способ.