我正在尝试使用logistic.fit()
我得到下面的错误。如何解决错误?
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 :(得分:0)
所以你有几个选择。
选项1 :
Vec<T>
这会丢弃所有NA值。如果你的观察很少,不推荐使用。
选项2 :
df_clean = df.dropna()
用平均值替换所有缺失值,或者也可以df["Column_Name"].fillna(df["Column_Name"].mean(), inplace=True)
。显然这只适用于数字列。
选项3 :
median
您可以在此处指定要从中删除NaN值的列。如果您的某些列是分类的,而其他列是数字的,则这将与选项2结合使用。
选项4 :
df = df[pd.notnull(df['Column_Name'])]
将所有NaN值填入0.您可以执行此操作而不是选项2,即通话。无论如何,这应该足以让您开始思考如何解决您的问题。由于您熟悉数据,因此您应该知道如何处理这些数据。如果您对此有任何具体问题,我将非常乐意为您提供帮助。