Python 3 statsmodels Logit ValueError:在输入DLASCL参数号5时有一个非法值

时间:2016-10-04 02:15:27

标签: python-3.x pandas statsmodels

通过逻辑回归示例并在接近statsmodels部分时遇到一些困难。我在Python 3和pandas数据帧中遇到困难,其中df返回迭代器而不是列表。我试过用' logit'来调整它。但仍然收到ValueError

import numpy as np
import pandas as pd
import os
import statsmodels.api as sm
import pylab as pl

df = pd.read_csv('admissions.csv')
df.head(n=5)

df.columns = ['admit', 'gre', 'gpa', 'prestige']
dummy_ranks = pd.get_dummies(df['prestige'], prefix='prestige')
cols_to_keep = ['admit', 'gre', 'gpa']
data = df[cols_to_keep].join(dummy_ranks.ix[:, 'prestige_2':])
data['intercept'] = 1.0
train_cols = data.columns[1:]


logit = sm.Logit(data['admit'], data[train_cols])

result = logit.fit()

ValueError:在输入DLASCL时,参数编号5具有非法值

1 个答案:

答案 0 :(得分:2)

您的' admissions.csv'其中有一个空白值。

根据博客http://www.ats.ucla.edu/stat/data/binary.csv使用http://blog.yhat.com/posts/logistic-regression-python-rodeo.html中的数据。尝试删除数据中的值,您将收到非法值错误。

正确:

admit   gre gpa rank
0   380 3.61    3
1   520 2.93    4

不正确:

admit   gre gpa rank
0       3.61    3
1   520 2.93    4