Как создать переменные Target (y) и X из файла CSV - PullRequest
0 голосов
/ 12 октября 2019

Я читаю CSV-файл и мне нужно, для целей моделирования, создать переменные Target (Y) и X. Не уверен, как это настроить. Я новичок в кодировании и нуждаюсь в некотором руководстве, которое я не могу понять из документов Pandas. Я хотел бы, чтобы Target был «Bad Indicator» и «X», как и все остальные столбцы.

import numpy as np
from scipy import stats
import matplotlib.pyplot as plt
import pandas as pd
project = pd.read_csv('c:/users/Brandon Thomas/Project.csv')
project=pd.DataFrame(project)
df = pd.DataFrame(project.data, columns = project.feature_names)
df["Bad Indicator"] = x.target
X = df.drop("Bad Indicator",axis=1)   #Feature Matrix
y = df["Bad Indicator"]          #Target Variable
df.head()

AttributeError Traceback (последний вызов был последним) в 1 # Построить фрейм данных ----> 2 df =pd.DataFrame (project.data, columns = project.feature_names) 3 df ["Bad Indicator"] = x.target 4 X = df.drop ("Bad Indicator", axis = 1) # Матрица характеристик 5 y = df [«Плохой индикатор»] # Целевая переменная

~\Anaconda3\lib\site-packages\pandas\core\generic.py in __getattr__(self, 
name)
   5065             if 
self._info_axis._can_hold_identifiers_and_holds_name(name):
   5066                 return self[name]
-> 5067             return object.__getattribute__(self, name)
   5068 
   5069     def __setattr__(self, name, value):

AttributeError: 'DataFrame' object has no attribute 'data'

1 Ответ

0 голосов
/ 12 октября 2019

В приведенном выше коде вы создаете фрейм данных 3 раза. Один раз с pd.read_csv, один раз с project = pd.DataFrame(project) и еще раз с df = pd.DataFrame(...). По умолчанию объект pd.read_csv будет кадром данных.

Я удалил ненужные на данный момент импорты, такие как numpy, scipy и matplotlib. Вы можете добавить их обратно, если они понадобятся вам позже. Чтобы установить Y и X, все, что вам нужно сделать, это:

import pandas as pd

df = pd.read_csv('c:/users/Brandon Thomas/Project.csv') # this will automatically name your columns if your csv has headers

#if your csv does not have headers:
df.columns = ['Bad Indicator', 'ColumnName1', 'ColumnName2',..]

X = df.drop("Bad Indicator",axis=1)   #Feature Matrix
Y = df["Bad Indicator"]          #Target Variable

df.head()

Если у вашего csv есть заголовки, удалите строку df.columns.

...