2016-12-27 6 views
0

私はlogistic.fit()を使用しようとしています。私は以下のエラーを受け取ります。どのようにエラーを修正するには?ここでLogisticRegressionのlogistic.fit()erorr

Input contains NaN, infinity or a value too large for dtype('float64'). 

は、私のコードの一部です: (床と姓が文字列である)

xtr = pd.get_dummies([['Age','Fee', 'Size','Floor', 'Class', 'Surname' ]]) 
    import pandas as pd 
    from sklearn.linear_model import LogisticRegression 
    logistic = LogisticRegression() 
    logistic.fit(xtr , ytr) 
+0

明らかに、xまたはyのいずれかに問題があります。この 'df.isnull()。sum(axis = 1)'を実行し、いずれの行からも0より大きい数値が返された場合、データに欠損値がはっきりとあります。あなたがそれらに対処する方法は、他のものに依存します。 –

+0

私はそれをして、ほぼすべての行に0以上のものがあるので、それを修正する方法は?私は私の全体のactaulコードをアップロードすることができますか? –

答えて

0

だから、あなたはいくつかのオプションがあります。

オプション1

df_clean = df.dropna() 

これは、すべてのNA値を削除します。観察回数が少ない場合はお勧めできません。

オプション2

df["Column_Name"].fillna(df["Column_Name"].mean(), inplace=True) 

これは、平均して、すべての欠損値を置き換え、代わりにあなたにもmedianを行うことができます。明らかに、これは数値列に対してのみ機能します。

オプション3

ここ
df = df[pd.notnull(df['Column_Name'])] 

あなたがからNaN値をドロップしたい列を指定することができます。一部の列がカテゴリに属し、その他が数値である場合、これはオプション2と連携して動作します。

オプション4

df.fillna(0) 

0で、すべてのNaN値を記入しますが、代わりにオプション2の通話を行うことができます。とにかくこれはあなたの問題を解決する方法を考え始めるのに十分であるはずです。あなたはデータに精通しているので、これをどのように処理するのが最適かを知っておく必要があります。あなたがそれに関する特定の質問をしているなら、私は助けてくれるだけではないでしょう。

関連する問題