首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用sci-kit using仅输入数值

使用sci-kit using仅输入数值
EN

Stack Overflow用户
提问于 2019-03-12 23:02:25
回答 2查看 2.5K关注 0票数 3

因此,我有一个包含分类和数值混合的DataFrame,它当前是12345 171 171列。

我在分类变量和数值中都有缺失值,我想要将值归因于这些值。对于数字列,我执行以下操作;

代码语言:javascript
运行
复制
import pandas as pd
import numpy as np

data = pd.read_csv('filepath')

from sklearn.preprocessing import Imputer
imp = Imputer(missing_values=np.nan, strategy='mean', axis=0)
data = imp.fit_transform(data)

然后,我得到了以下错误

代码语言:javascript
运行
复制
ValueError: could not convert string to float: 'USD'

我理解这是因为我使用的是带有strategy = mean的sci-kit学习计算机,它与分类变量不兼容。我宁愿不必遍历每一列并手动提取数值,所以我正在寻找一种只在数值列上执行这种推算的方法。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-03-13 01:55:12

如果您使用panda的categorical encoding功能,这一切都可以非常简单地处理。然而,我很少发现自己有正确编码的数据,我宁愿有一个健壮的解决方案,而不是依赖纯粹的熊猫。

这就是我要做的。

代码语言:javascript
运行
复制
categorical_columns = []
numeric_columns = []
for c in data.columns:
    if data[c].map(type).eq(str).any(): #check if there are any strings in column
        categorical_columns.append(c)
    else:
        numeric_columns.append(c)

#create two DataFrames, one for each data type
data_numeric = data[numeric_columns]
data_categorical = pd.DataFrame(data[categorical_columns])


from sklearn.preprocessing import Imputer
imp = Imputer(missing_values=np.nan, strategy='mean', axis=0)
data_numeric = pd.DataFrame(imp.fit_transform(data_numeric), columns = data_numeric.columns) #only apply imputer to numeric columns


#you could do something like one-hot-encoding of data_categorical here

#join the two masked dataframes back together
data_joined = pd.concat([data_numeric, data_categorical], axis = 1)
票数 2
EN

Stack Overflow用户

发布于 2020-08-20 17:43:05

您可以使用select_dtypes方法选择所有数值列:

代码语言:javascript
运行
复制
numeric_columns = data.select_dtypes(include='number').columns
imp = Imputer(missing_values=np.nan, strategy='mean', axis=0)
data[numeric_columns] = pd.DataFrame(imp.fit_transform(data[numeric_columns]), columns=numeric_columns)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55124655

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档