Я проверяю влияние провайдера isp на клик по объявлению с scipy.stats.chi2_contingency
У меня есть файл pd.df с примерно 3M транзакциями, которые содержат ~ 3500 isp_providers и в конце всех транзакций -нажмите 0 / 1.
независимо от того, влияет ли это на щелчок или нет - я хочу доказать это с помощью теста Chi2.когда я пытаюсь поместить эти 2 столбца в метод, упомянутый выше, я получаю
TypeError: '<' not supported between instances of 'str' and 'int'
сейчас, я использовал индексирование, чтобы преобразовать ISP в индексы и избежать этого, но по какой-то причине я получаю 10в несколько раз больше степеней свободы (31000 вместо 3500)
со строками (3500 степеней свободы, но TypeError):
X2, p ,DOF, expected = stats.chi2_contingency(table[['user_isp','click']])
с кодировкой (31000 степеней свободы нет TypeError - но это меняет результатрезко):
le = LabelEncoder()
table['isp_index'] = le.fit_transform(table['user_isp'])
X2, p ,DOF, expected = stats.chi2_contingency(table[['isp_index','click']])
, пожалуйста, помогите