Ошибка FileNotFoundError в Jupyter
скопировал код из книги по машинному обучению, но когда пытаюсь обратиться к набору данных, то выходит ошибка, что файл не найден. Функция для скачивания набора данных:
import os
import tarfile
from six.moves import urllib
DOWNLOAD_ROOT = "https://raw.githubusercontent.com/ageron/handson-ml2/master/"
HOUSING_PATH = os.path.join("datasets", "housing")
HOUSING_URL = DOWNLOAD_ROOT + "datasets/housing/housing.tgz"
def fetch_housing_data(housing_url=HOUSING_URL, housing_path=HOUSING_PATH):
if not os.path.isdir(housing_path):
os.makedirs(housing_path)
tgz_path = os.path.join(housing_path, "housing.tgz")
urllib.request.urlretrieve(housing_url, tgz_path)
housing_tgz = tarfile.open(tgz_path)
housing_tgz.extractall(path=housing_path)
housing_tgz.close()
Функция для загрузки данных
def load_housing_data(housing_path = HOUSING_PATH):
csv_path = os.path.join(housing_path, "housing.csv")
return pd.read_csv(csv_path)
Попытка показать первые 5 рядов данных:
housing = load_housing_data()
housing.head()
Выходит ошибка:
FileNotFoundError Traceback (most recent call last)
<ipython-input-18-01b6b4e3c8b2> in <module>
----> 1 housing = load_housing_data()
2
3 housing.head()
<ipython-input-17-d307253a638f> in load_housing_data(housing_path)
3 def load_housing_data(housing_path = HOUSING_PATH):
4 csv_path = os.path.join(housing_path, "housing.csv")
----> 5 return pd.read_csv(csv_path)
Ответы (1 шт):
Автор решения: MaxU
→ Ссылка
pd.read_csv() умеет парсить данные по URL:
from urllib.parse import urljoin
url = urljoin(DOWNLOAD_ROOT, "datasets/housing/housing.csv")
df = pd.read_csv(url)
результат:
In [104]: df
Out[104]:
longitude latitude housing_median_age total_rooms total_bedrooms population households median_income median_house_value ocean_proximity
0 -122.23 37.88 41.0 880.0 129.0 322.0 126.0 8.3252 452600.0 NEAR BAY
1 -122.22 37.86 21.0 7099.0 1106.0 2401.0 1138.0 8.3014 358500.0 NEAR BAY
2 -122.24 37.85 52.0 1467.0 190.0 496.0 177.0 7.2574 352100.0 NEAR BAY
3 -122.25 37.85 52.0 1274.0 235.0 558.0 219.0 5.6431 341300.0 NEAR BAY
4 -122.25 37.85 52.0 1627.0 280.0 565.0 259.0 3.8462 342200.0 NEAR BAY
... ... ... ... ... ... ... ... ... ... ...
20635 -121.09 39.48 25.0 1665.0 374.0 845.0 330.0 1.5603 78100.0 INLAND
20636 -121.21 39.49 18.0 697.0 150.0 356.0 114.0 2.5568 77100.0 INLAND
20637 -121.22 39.43 17.0 2254.0 485.0 1007.0 433.0 1.7000 92300.0 INLAND
20638 -121.32 39.43 18.0 1860.0 409.0 741.0 349.0 1.8672 84700.0 INLAND
20639 -121.24 39.37 16.0 2785.0 616.0 1387.0 530.0 2.3886 89400.0 INLAND
[20640 rows x 10 columns]