我目前正在学习“使用Scikit-Learn,Keras和TensorFlow进行动手机器学习”这本书。我尝试运行以下示例,但是没有成功。链接正常,熊猫已正确安装,操作系统,tarfile和urllib是系统软件包。不过,我仍然收到以下错误消息(尝试过Jupyter和Spyder):
import os
import tarfile
import urllib
import pandas as pd
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):
os.makedirs(housing_path, exist_ok = True)
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)
housing = load_housing_data()
print(housing)
Jupyter中的错误消息:
--------------------------------------------------- ---------------------------- FileNotFoundError Traceback(最近一次调用 最后) 21 return pd.read_csv(csv_path) 22 ---> 23外壳= load_housing_data() 24 housing.head()
在load_housing_data(housing_path)中 19 def load_housing_data(housing_path = HOUSING_PATH): 20 csv_path = os.path.join(housing_path,“ housing.csv”) ---> 21返回pd.read_csv(csv_path) 22 23外壳= load_housing_data()
〜\ Miniconda3 \ lib \ site-packages \ pandas \ io \ parsers.py在 read_csv(filepath_or_buffer,sep,分隔符,标头,名称,index_col, usecols,squeeze,前缀,mangle_dupe_cols,dtype,引擎,转换器, true_values,false_values,skipinitialspace,skiprows,skipfooter, nrows,na_values,keep_default_na,na_filter,详细, skip_blank_lines,parse_dates,infer_datetime_format,keep_date_col, date_parser,dayfirst,cache_dates,迭代器,chunksize,压缩, 千位,十进制,换行符,quotechar,引号,双引号, 转义符,注释,编码,方言,error_bad_lines, warn_bad_lines,delim_whitespace,low_memory,memory_map, float_precision) 684) 685 -> 686 return _read(filepath_or_buffer,kwds) 687 688
〜\ Miniconda3 \ lib \ site-packages \ pandas \ io \ parsers.py在 _read(filepath_or_buffer,kwds) 450 451#创建解析器。 -> 452解析器= TextFileReader(fp_or_buf,** kwds) 453 454(如果是chunksize或迭代器):
〜\ Miniconda3 \ lib \ site-packages \ pandas \ io \ parsers.py in init ((自我, f,引擎,** kwds) 934 self.options [“ has_index_names”] = kwds [“ has_index_names”] 935 -> 936 self._make_engine(self.engine) 937年 938 def close(自己):
〜\ Miniconda3 \ lib \ site-packages \ pandas \ io \ parsers.py在 _make_engine(self,engine)1166定义_make_engine(self,engine =“ c”):1167如果engine ==“ c”: -> 1168 self._engine = CParserWrapper(self.f,** self.options)1169 else:1170 if engine ==“ python”:
〜\ Miniconda3 \ lib \ site-packages \ pandas \ io \ parsers.py在 init 中(自我, src,** kwds)1996 kwds [“ usecols”] = self.usecols 1997 -> 1998 self._reader = parsers.TextReader(src,** kwds)1999 self.unnamed_cols = self._reader.unnamed_cols 2000
pandas_libs \ parsers.pyx在 pandas._libs.parsers.TextReader。初始化()
pandas_libs \ parsers.pyx在 pandas._libs.parsers.TextReader._setup_parser_source()
FileNotFoundError:[错误2]没有这样的文件或目录: '数据集\房屋\房屋.csv'
如果有人花时间重现/提供输入代码是否返回错误消息,我将不胜感激。
非常感谢!
答案 0 :(得分:1)
仅在调用时创建本地文件"datasets/housing/housing.csv"
fetch_housing_data()
您的代码示例未调用此函数。尝试在housing = load_housing_data()
之前添加此行。