我有一个csv文件,我正准备使用不同的机器学习算法训练它的数据,所以我用该列的平均值替换了数字缺失数据,但是如何处理丢失的分类数据,我应该更换他们最常见的元素?以及使用pandas在python中最简单的原因。
代码:
dataset = pd.read_csv('doc.csv')
X = dataset.iloc[:, [2, 4, 5, 6, 7, 9,10 ,11]].values
y = dataset.iloc[:, -1].values
第2行包含分类数据。
第一行值:
[3,'S',22.0,1,0,7.25,107722,2]
答案 0 :(得分:2)
关于问题的建模部分,最好在CrossValidated询问。
如果有太多记录缺少数据,您可以完全删除该列。关于this StackOverflow post还有其他一些很好的建议,包括sci-kit learn Imputer()
方法,或者只是让模型处理丢失的数据。
关于将列替换为DataFrame.replace()
方法
DataFrame.replace(
to_replace=None,
value=None,
inplace=False,
limit=None,
regex=False,
method='pad',
axis=None)
对于您的数据集使用此示例的一个示例,假设缺少的列值称为“N”,并且您将其替换为其他类别“S”(您使用DataFrame.mode()
方法找到的): dataset[1].replace('N', 'S')
。