我正在尝试使用statsmodel来构建一些logit模型。我遇到了一个错误,它告诉我转换为浮动时出错。
logit = sm.Logit(logit_df.isFraud, logit_df.columns[1:])
ValueError: could not convert string to float: 'high_fraud_cities'
如果我删除了high_fraud_cities,我只会在另一列
上收到另一个错误我有一个数据框:
isFraud distance high_fraud_cities is_mobile
0 24 1 0
1 371 1 1
0 8 0 0
我试图找到dtypes:
logit_df.dtypes
获得以下结果:
我尝试了本网站推荐的一些方法,包括:
astype
logit = sm.Logit(logit_df.isFraud.astype(float), logit_df.columns[1:].astype(float))
to_numeric
logit_df.isFraud = pd.to_numeric(logit_df.isFraud, errors='coerce')
我导出到Excel以检查我是否有隐藏的字符串或NaN,但它没有显示任何此类问题。有关如何解决此问题的任何建议吗?
提前致谢!
答案 0 :(得分:1)
您需要将培训列作为第二个参数传递给sm.Logit
,更改您的代码如下:
train_columns = logit_df.columns[1:]
logit = sm.Logit(logit_df.isFraud, logit_df[train_columns])