在分类数据中使用get_dummies。

问题描述 投票:0回答:1

我必须使用一个数据集然后使用决策树分类器,为此我不能有分类数据,但这个数据集有这样的分类数据列。

enter image description here

我知道这可以通过使用get_dummies函数来实现 但我做不到 我首先读取了这样的数据集

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'
python pandas one-hot-encoding
1个回答
1
投票

根据这个答案。get_dummies(), Exception: 数据必须是一维的似乎你必须把你的数据框架转换回你的 table_X 函数前 get_dummies(). 或者你可以避免使用 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)

让我知道,如果它的工作。


0
投票

就在 pd.read_csv 使用 pd.get_dummies(df)

© www.soinside.com 2019 - 2024. All rights reserved.