我正在使用Sklearn和pandas.dataframe的数据集工作。我针对基于数据框的不同列的列名称实施了不同的插定策略。例如,nas预测变量“ var1” i以0为0,而“ var2”均以均值。

当我尝试使用Train_test_split交叉验证我的模型时,它会将我返回一个没有列名称的NPARRAY。我如何在此NParray中算下缺失值?

PS I在故意分裂之前不会在原始数据集中算中缺失值,因此我将测试和验证集分别保留。

有帮助吗?

解决方案

您可以将NPARRAY从train_test_split铸造回Pandas DataFrame,以便您执行相同的策略。这对于与大熊猫和Scikit打交道时所做的事情非常普遍。例如,

 a = train_test_split
 new_df = pd.DataFrame(a)

其他提示

从您在评论中提到的链接中,如果您遵循第一个说明,则火车和测试集应采用数据框架的形式。

在这种情况下,您可以做这样的事情:

df[variable] = df[variable].fillna(df[variable].median())

您有关于填充N/A值的选项,请查看链接。http://pandas.pydata.org/pandas-docs/stable/missing_data.html

如果您遵循第二个说明,使用Sklearn的交叉验证,则可以实现Mike1886的建议,即将阵列转换为数据范围,然后使用FillNA选项。

许可以下: CC-BY-SA归因
scroll top