Scipy.stats.chi2_contengency не будет работать со строками - PullRequest
0 голосов
/ 22 декабря 2018

Я проверяю влияние провайдера 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']]) 

, пожалуйста, помогите

...