Используйте DataFrame с импортированным файлом Excel

Я использовал следующий код для импорта файла Excel в Python:

import pandas as pd

file_name = (file.direction)
ExcelData = pd.read_excel(file_name, sheet_name = "File Name", header = 0)
Data = ExcelData.head()

После этого я делаю:

df = pd.DataFrame(Data)

Моя проблема в том, что я хочу создать модель линейной регрессии из класса sklearn.linear_model, и для этого мне нужно определить столбцы X и Y. Вопрос в том, как я импортировал данные, как я могу ссылаться на столбцы в переменных x и y? Прямо сейчас я делаю следующее:

X = df[["ColumnName1", "ColumnName2", "ColumnName3"]]
y = df["ColumnName4"]

Если кто-нибудь знает, как поместить столбцы в переменные x и y, я был бы очень признателен :)

Data уже является DataFrame, поэтому pd.DataFrame(Data) — бесполезный шаг. Как вы думаете, что это делает?
mozway 16.04.2024 20:36

Почему вы используете ExcelData.head()? Это позволит получить только первые 5 строк из файла Excel. Разве вы не хотите использовать все строки для модели линейной регрессии?

Diamoniner12345 16.04.2024 21:01

Мне известна функция head(), начиная с 5 строк, чтобы убедиться, что данные импортируются правильно, после этого функция head будет удалена. Однако я знал, что данные служат фреймом данных, спасибо за это.

alfredocarrascor 16.04.2024 21:35
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
3
63
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Чтобы использовать метод «подгонки» из scikit-learn linear_model, вы можете напрямую использовать DataFrame pandas для вектора X и серию pandas для вашего y.

Это должно работать, и вы можете использовать приведенный ниже код в качестве основы:

import pandas as pd
from sklearn import linear_model

my_df = pd.DataFrame({'col1': [0,1,2], 'col2': [0.5,1.5,2.5], 'col3': [1,2,3]})

reg = linear_model.LinearRegression()

X = my_df[['col1','col2']]
y = my_df['col3']

reg.fit(X, y)
reg.coef_
Ответ принят как подходящий

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

Вы можете попробовать что-то вроде этого:

import pandas as pd
from sklearn.linear_model import LinearRegression

df = pd.read_excel(r'You file name.xlsx')
X = df.drop(columns = ['the column name for the output'])
Y = df['the column name for the output']
model = LinearRegression()
model.fit(X, Y)
model.predict(<Your X inputs>)

Если у вас есть какие-либо категориальные переменные, я рекомендую выполнить горячее кодирование ваших данных с помощью from sklearn.preprocessing import OneHotEncoder перед отправкой их в модель линейной регрессии. Это связано с тем, что все данные должны быть в числовом формате. Надеюсь это поможет

Это то, что мне нужно, спасибо, мне не хватало функции df.drop() для импорта определенных столбцов. Спасибо!

alfredocarrascor 16.04.2024 21:43

Другие вопросы по теме

Python: объединить два кадра данных в определенных столбцах, используя Excel-эквивалент индекса/сопоставления
Не понимаю ValueError: должны иметь равные ключи и значения len при настройке с помощью итерации в Python
SQL-запросы: наиболее распространенное значение в столбце, сгруппированном по другому столбцу
Скользящая сумма `pandas` с максимальным количеством действительных наблюдений в окне
Как рассчитать индекс относительной силы (RSI) и экспоненциальную скользящую среднюю (EMA) из списка в pandas
Динамический расчет для столбцов в пандах
Как в каждом столбце фрейма данных узнать продолжительность существования каждого уникального значения в столбце?
Модель логистической регрессии со 100-процентной точностью
Pandas — группировать строковое поле и выбирать по диапазону времени суток
Почему pandas read_html автоматически удаляет десятичный разделитель?