Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 对缺少值的分类数据应用OneHotEncoding_Python 3.x_Pandas_Categorical Data_One Hot Encoding_Imputation - Fatal编程技术网

Python 3.x 对缺少值的分类数据应用OneHotEncoding

Python 3.x 对缺少值的分类数据应用OneHotEncoding,python-3.x,pandas,categorical-data,one-hot-encoding,imputation,Python 3.x,Pandas,Categorical Data,One Hot Encoding,Imputation,我想对缺少值的pd.DataFrame进行OneHotEncode。当我尝试OneHotEncode时,它会抛出一个关于缺少值的错误 ValueError:输入包含NaN 当我尝试使用SimpleImputer修复缺失的值时,它会抛出一个关于分类数据的错误 ValueError:无法对非数字数据使用均值策略: 无法将字符串转换为浮点:“RH” 由于缺少值,我无法应用OneHotEncoding,因为分类数据,我无法应用SimpleComputer。 除了删除列或行之外,还有其他解决方法吗?您可以

我想对缺少值的pd.DataFrame进行OneHotEncode。当我尝试OneHotEncode时,它会抛出一个关于缺少值的错误

ValueError:输入包含NaN

当我尝试使用SimpleImputer修复缺失的值时,它会抛出一个关于分类数据的错误

ValueError:无法对非数字数据使用均值策略: 无法将字符串转换为浮点:“RH”

由于缺少值,我无法应用OneHotEncoding,因为分类数据,我无法应用SimpleComputer。
除了删除列或行之外,还有其他解决方法吗?

您可以使用以下两种方法中的任何一种来消除NaN分类值-

选项1:用最常见的类别替换缺少的值。例如,如果您有一个列,其中51%的值属于一个类别,则使用下面的代码来填充该类别缺少的值

df['col_name'].fillna('most_frequent_category',inplace=True)
选项2:如果您不希望将缺失值填入最常见的类别,则可以创建一个名为“其他”的新类别(或与您的变量相关的类似中性类别)


这两种方法都将插补缺失的分类值,然后您将能够对它们进行OneHotEncode。

您可以使用以下两种方法中的任何一种来消除NaN分类值-

选项1:用最常见的类别替换缺少的值。例如,如果您有一个列,其中51%的值属于一个类别,则使用下面的代码来填充该类别缺少的值

df['col_name'].fillna('most_frequent_category',inplace=True)
选项2:如果您不希望将缺失值填入最常见的类别,则可以创建一个名为“其他”的新类别(或与您的变量相关的类似中性类别)

这两种方法都将插补您缺少的分类值,然后您将能够对它们进行编码