繁体   English   中英

在分类数据中使用 get_dummies

[英]Use get_dummies in categorical data

我必须使用数据集然后使用决策树分类器,因为我不能有分类数据,但是这个数据集有包含分类数据的列,如下所示:

在此处输入图像描述

我知道这可以通过使用 get_dummies function 来完成,但我做不到。 我首先阅读了这样的数据集:

def load_data(fname):
    """Load CSV file"""
    df = pd.read_csv(fname)
    nc = df.shape[1]
    matrix = df.values
    table_X = matrix [:, 2:]
    table_y = matrix [:, 81]
    features_names = df.columns.values[1:]
    target = df.columns.values[81]
    return table_X, table_y

table_X, table_y = load_data("dataset.csv")

pd.get_dummies(table_X)

当我运行它时,我得到这个异常: Exception: Data must be 1-dimensional

我究竟做错了什么?

- - - - - - - - - - - - - - - - 编辑 - - - - - - - - - ------------------

from sklearn.preprocessing import LabelEncoder

le = LabelEncoder()
y = le.fit_transform(table_y)
le.classes_

le.transform(['<200000', '>400000', '[200000,400000]'])

要应用决策树算法:

from sklearn import tree

dtc_Gini = tree.DecisionTreeClassifier() #criterion='gini'
dtc_Gini1 = dtc_Gini.fit(table_X, y)

ValueError: could not convert string to float: 'RL'

pd.read_csv使用pd.get_dummies(df)之后

基于这个答案: get_dummies(),异常:数据必须是一维的在应用 function get_dummies()之前,您似乎必须将table_X转换回 dataframe。 或者您可以避免使用df.values

试试这个:

def load_data(fname):
    """Load CSV file"""
    df = pd.read_csv(fname)
    table_X = df.iloc[:, 2:]
    table_y = df.iloc[:, 81]
    return table_X, table_y

table_X, table_y = load_data("dataset.csv")

pd.get_dummies(table_X)

让我知道它是否有效。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM