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').´