Не идет чтение из файла

E

Пользователь

от Emilen , в категории: Python , 2 года назад

нужна помощь с python, почему то не идет чтение из файла, помогите понять в чем ошибка и как ее исправить (все библиотеки установлены)

выводит, что ошибка в 12 строке ( File "C:\Users\89625\PycharmProjects\pythonProject\Practice.py", line 12, in <module>

data = pd.read_csv('data.csv'))

не понимаю в чем проблема, файл (для чтения) находится в той же директории, что и код

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
from yellowbrick.features import Rank2D
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LinearRegression
from sklearn.feature_selection import SelectKBest, f_regression
from sklearn.neighbors import KNeighborsRegressor
from sklearn.tree import DecisionTreeRegressor
from sklearn.metrics import r2_score
data = pd.read_csv('data.csv')
features = data[['y', 'x1', 'x2', 'x3', 'x4', 'x5', 'x6']]
visualizer = Rank2D(features=features, algorithm='pearson')
visualizer.fit(features)
visualizer.transform(features)
visualizer.show()
plt.figure(figsize=(10, 8))
sns.heatmap(data.corr(), annot=True, cmap='coolwarm')
plt.show()
scaler = StandardScaler()
data[['y', 'x1', 'x2', 'x3', 'x4', 'x5', 'x6']] = scaler.fit_transform(data[['y', 'x1', 'x2', 'x3', 'x4', 'x5', 'x6']])
X = data[['x1', 'x2', 'x3', 'x4', 'x5', 'x6']]
y = data['y']
model = LinearRegression()
model.fit(X, y)
predicted_values = model.predict(X)
selector = SelectKBest(score_func=f_regression, k=3)
X_new = selector.fit_transform(X, y)
selected_features = X.columns[selector.get_support()]
model_knn = KNeighborsRegressor()
model_knn.fit(X, y)
predicted_values_knn = model_knn.predict(X)
model_tree = DecisionTreeRegressor()
model_tree.fit(X, y)
predicted_values_tree = model_tree.predict(X)
r2_linear = r2_score(y, predicted_values)
r2_knn = r2_score(y, predicted_values_knn)
r2_tree = r2_score(y, predicted_values_tree)
best_model = max(r2_linear, r2_knn, r2_tree)
plt.figure(figsize=(10, 8))
plt.****ter(y, y - predicted_values, color='blue', label='Linear Regression')
plt.axhline(y=0, color='r', linestyle='-')
plt.xlabel('Actual values')
plt.ylabel('Residuals')
plt.legend()
plt.show()
if best_model == r2_linear:
    print("Best model: Linear Regression")
elif best_model == r2_knn:
    print("Best model: K-Nearest Neighbors")
else:
    print("Best model: Decision Tree")
Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от jaren , 2 года назад

@Emilen  Ошибка возникает из-за лишней закрывающей скобки в строке, где вы считываете данные из CSV файла. Уберите лишнюю закрывающую скобку ) в конце этой строки.

Пользователь

от fred , 9 дней назад

@Emilen 

Вы правы, что ошибка в коде может быть вызвана синтаксической ошибкой, такой как лишняя или отсутствующая скобка. Однако в вашем случае, строка, которая вызывает ошибку, выглядит нормально:

1
data = pd.read_csv('data.csv')


Наиболее вероятные причины ошибки при чтении файла data.csv включают:

  1. Файл не существует или имеет неверное имя: Убедитесь, что файл data.csv действительно находится в том же каталоге, что и ваш скрипт. Проверьте имя файла на опечатки.
  2. Права доступа: Проверьте, есть ли у вашей программы права доступа для чтения файла.
  3. Окружение и рабочая директория: Убедитесь, что ваша текущая рабочая директория настроена правильно. Для проверки текущей рабочей директории можно использовать: import os print(os.getcwd()) # Печатает текущую рабочую директорию Если рабочая директория отличается от ожидаемой, вы можете изменить ее через: os.chdir('<нужный_путь_к_каталогу>')


Если ни одна из этих проблем не окажется причиной ошибки, может быть полезно вывести точное сообщение об ошибке, которое вы получаете, чтобы можно было дать более конкретные советы по устранению неполадок.


Также заметил опечатку в коде в строке, где строится график остатков:

1
plt.****ter(y, y - predicted_values, color='blue', label='Linear Regression')


Здесь использование ****ter неверно. Вы, вероятно, хотели использовать plt.****ter:

1
plt.****ter(y, y - predicted_values, color='blue', label='Linear Regression')


Проверьте указанные аспекты, и это должно помочь найти и исправить ошибку.