get_dummies (), исключение: данные должны быть одномерными - PullRequest
0 голосов
/ 01 декабря 2018

У меня есть эти данные

enter image description here

Я пытаюсь применить это:

one_hot = pd.get_dummies(df)

Но я получаю эту ошибку:

enter image description here

Вот мой код до тех пор:

# Import modules
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn import tree
df = pd.read_csv('AllMSAData.csv')
df.head()
corr_matrix = df.corr()
corr_matrix
df.describe()
# Get featurs and targets
labels = np.array(df['CurAV'])
# Remove the labels from the features
# axis 1 refers to the columns
df = df.drop('CurAV', axis = 1)
# Saving feature names for later use
feature_list = list(df.columns)
# Convert to numpy array
df = np.array(df)

1 Ответ

0 голосов
/ 01 декабря 2018

IMO, документация должна быть обновлена, потому что она говорит, что pd.get_dummies принимает данные, подобные массиву, а 2-D numpy массив равен массиву (несмотря на то, что не существует формального определения типа массива ).Однако, похоже, он не похож на многомерные массивы.

Возьмите этот крошечный пример:

>>> df
   a  b  c
0  a  1  d
1  b  2  e
2  c  3  f

Невозможно получить пустышки в базовом массиве 2D numpy:

>>> pd.get_dummies(df.values)

Исключение: данные должны быть одномерными

Но вы можете получить пустышки на самом кадре данных:

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

Или на массиве 1Dпод отдельным столбцом:

>>> pd.get_dummies(df['a'].values)
   a  b  c
0  1  0  0
1  0  1  0
2  0  0  1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...