get_dummies(), Exception: 数据必须是一维的

我有这些数据

enter image description here

我尝试应用以下代码:

one_hot = pd.get_dummies(df)

但我得到了这个错误:

enter image description here

这是我之前的代码:

# 导入模块import pandas as pdimport numpy as npimport matplotlib.pyplot as pltfrom sklearn import treedf = pd.read_csv('AllMSAData.csv')df.head()corr_matrix = df.corr()corr_matrixdf.describe()# 获取特征和目标labels = np.array(df['CurAV'])# 从特征中移除标签# axis 1 指的是列df = df.drop('CurAV', axis = 1)# 保存特征名称以备后用feature_list = list(df.columns)# 转换为 numpy 数组df = np.array(df)

回答:

在我看来,文档应该更新,因为它说 pd.get_dummies 接受类似数组的数据,而一个二维的 numpy 数组确实是类似数组的(尽管没有类似数组的正式定义)。然而,它似乎不喜欢多维数组。

以这个小例子为例:

>>> df   a  b  c0  a  1  d1  b  2  e2  c  3  f

你无法对底层的二维 numpy 数组进行虚拟编码:

>>> pd.get_dummies(df.values)

Exception: 数据必须是一维的

但是你可以对数据框本身进行虚拟编码:

>>> pd.get_dummies(df)   b  a_a  a_b  a_c  c_d  c_e  c_f0  1    1    0    0    1    0    01  2    0    1    0    0    1    02  3    0    0    1    0    0    1

或者对单个列的底层一维数组进行虚拟编码:

>>> pd.get_dummies(df['a'].values)   a  b  c0  1  0  01  0  1  02  0  0  1

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注