Создание матрицы ввода X и выходного вектора y через Python

65
7

если у меня есть набор данных, который имеет 5 столбцов и 10 строк (таким образом, 10 наблюдений), где я хочу, чтобы X была входной матрицей 10 на 4, представляющей первые четыре столбца, а y - матрицей вывода на 10 на 1, представляющей последний столбец в мой набор данных, как бы я закодировал это на python? Я хочу, чтобы моя матрица X включала столбцы: cty_pop2000, countyfipscode, county_name и statename. Хотя я хочу, чтобы мой выходной вектор y был столбцом gini. Как бы я закодировал это на Python? Извинения, если этот вопрос тривиален, я новичок в Python. Я пробовал sklearn, но они используют простые массивы для ввода X и y. Поэтому я не знаю, как закодировать мою X-матрицу и y-вектор

Я пробовал кодировать его, используя следующее:

import pandas as pd

df = pd.read_csv('file_name.csv')
X = df.iloc[[0:3]]
y = df['gini']

Набор данных - это файл csv, который имеет следующее:

cty_pop2000 countyfipscode  county_name statename   gini
43671 1001 Autauga Alabama 0.381
43671 1001 Autauga Alabama 0.381
43671 1001 Autauga Alabama 0.381
43671 1001 Autauga Alabama 0.381
43671 1001 Autauga Alabama 0.381
43671 1001 Autauga Alabama 0.381
43671 1001 Autauga Alabama 0.381
43671 1001 Autauga Alabama 0.381
43671 1001 Autauga Alabama 0.381

спросил(а) 2021-01-19T15:38:54+03:00 9 месяцев назад
1
Решение
92

Вы можете скопировать последний столбец в вектор и перенести его из исходного фрейма.

import pandas as pd

df = pd.read_csv('file_name.csv')
y = df[['gini']]
X = df.drop(['gini'])

Или вы можете просто вырезать столбец "gini", не отбрасывая

import pandas as pd

df = pd.read_csv('file_name.csv')
y = df[['gini']]
X = df[df.columns.difference(['gini'])]

Вы также можете вырезать столбцы, используя индексы столбцов:

import pandas as pd

df = pd.read_csv('file_name.csv')
y = df[[-1]]
X = df[df.columns[0:-1]]

все эти методы дадут вам

>> y
gini
0 0.381
1 0.381
2 0.381
3 0.381
4 0.381
5 0.381
6 0.381
7 0.381
8 0.381

и для X

>> X 
cty_pop2000 countyfipscode county_name statename
0 43671 1001 Autauga Alabama
1 43671 1001 Autauga Alabama
2 43671 1001 Autauga Alabama
3 43671 1001 Autauga Alabama
4 43671 1001 Autauga Alabama
5 43671 1001 Autauga Alabama
6 43671 1001 Autauga Alabama
7 43671 1001 Autauga Alabama
8 43671 1001 Autauga Alabama

ответил(а) 2021-01-19T15:38:54+03:00 9 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема