Python 在分类数据中使用get_假人

Python 在分类数据中使用get_假人,python,pandas,one-hot-encoding,Python,Pandas,One Hot Encoding,我必须使用一个数据集,然后使用决策树分类器,因为我不能有分类数据,但这个数据集有分类数据列,如下所示: 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 = d

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

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)

我知道这可以通过使用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:数据必须是一维的

我做错了什么

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

from sklearn.preprocessing import LabelEncoder

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

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

就在pd之后。阅读csv使用pd。根据以下答案获取假人(df)

: 在应用函数
get\u dummies()
之前,似乎必须将表X转换回数据帧。或者您可以避免使用
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)

让我知道它是否有效。

问题是,我不想将它应用于所有数据集。我有一列具有分类数值,我想转换为字符串,然后我有顺序数值列,它们应该保持原样,并使用索引映射进行转换。最后使用get dummiesoh然后使用:data=pd.get_dummies(data,columns=[“”])它可以工作,至少我在运行'pd.get_dummies(table_X)时可以得到一个表尽管当我尝试运行决策树算法时,我仍然得到一个错误,我已经编辑了问题并添加了决策树部分。您得到的错误可能与表_x中没有浮动的值有关(其中仍然有字符串)。使用
table_x.dtypes检查这一点
如何更改列类型?要应用决策树算法,我需要取出所有NaN、无穷大或对dtype太大的值(float32),因为我对table_x应用了get_假人,并得到以下错误:''ValueError:输入包含NaN、无穷大或对dtype太大的值('float32').´