在分类数据中使用 get_dummies
Use get_dummies in categorical data
我必须使用数据集然后使用决策树分类器,因为我不能有分类数据,但是这个数据集有这样的分类数据列:
我知道可以使用 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'
就在 pd.read_csv
之后使用 pd.get_dummies(df)
基于这个答案:
在应用函数 get_dummies()
之前,您似乎必须将 table_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_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'
就在 pd.read_csv
之后使用 pd.get_dummies(df)
基于这个答案:get_dummies()
之前,您似乎必须将 table_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)
如果有效请告诉我。