python - thinkstats2 书 - 卡在导入数据上
问题描述
它一定很简单,但不知何故我错过了一些东西......为长信息道歉,但这让我发疯了。
我正在阅读thinkstat2,这是一个关于数据科学统计的免费 pdf(初级)。它带有练习,所以我正在尝试按照说明导入数据。我将描述我正在遵循的步骤并给出页面,这就像阅读 2 分钟。
步骤 1a:第 8 页 - “0.2 使用代码” - 从作者的github获取代码。我没有 github 帐户,所以我将代码作为 zip 文件存储在我的硬盘上。然后我将内容提取到一个新文件夹中。
步骤 1b:第 9 页 - 作者建议获取 anaconda。据我了解,anaconda 包含许多不同的应用程序,您可以通过“anaconda navigator”使用。我有 anaconda 并将为此使用 Jupyter 笔记本。
第 2 步:第 9 页 - 作者要求从他的 zip 中运行“nsfg.py”,以确保读者已安装所有软件包。作者说我应该有一个确认信息。当我运行它时,有一个命令屏幕闪烁,没有任何错误或确认消息。但是如果只是为了检查是否正确安装了正确的包,我可以在我的代码中添加“import x”来添加丢失的包,所以这里不是一个真正的问题(或者我相信)。我继续前进。
第 3 步:第 24 至 26 页 - “1.3 导入数据”和“1.4 数据帧” - 这是我卡住的地方。运行“nsfg.py”(我在步骤2中提到)后,作者要求“导入nsfg”,这是他自己从“nsfg.py”创建的包?也许?所以我尝试导入它并且它不被识别。这可能来自第 2 步中的“不是真正的问题”......我在“nsfg.py”内部进行了检查,它似乎是清理和读取 .dct 和 .gz 文件的代码。
问题:
我不明白我应该怎么做才能使“nsfg.py”正常运行。
我不明白我的 jupyter 笔记本如何理解“import nsfg”,因为它们位于我的硬盘上。作者没有添加任何关于从本地驱动器或从 url 导入任何内容到他的 github 的行(不在 nsfg.py 的代码中,除非我错过了它)。
我想只是复制粘贴“nsfg.py”的代码并运行它,但我相信它不会起作用,因为提到的 .dct 和 .gz 文件也保存在本地。所以我不明白从我在 jupyter notebook 上运行的 nsfg.py 粘贴的代码如何与那些本地 .dct 和 .gz 文件建立链接。我的 python 不够先进,无法手动修补...
帮助:((欢迎任何替代解决方案)
解决方案
解决这个问题的两种方法都对我有用:
首先,复制书中摘录的内容,假设您使用的是 linux 或 mac:
- 在您的终端中点击
git clone https://github.com/AllenDowney/ThinkStats2.git
您想要放入的任何文件夹 - 然后
cd ThinkStats2/code
。 - 然后
python nsfg.py
- 然后
python
再次点击给你一个交互式shell,这本书的作者似乎正在使用它——注意每个命令之前的>>>,这表明它不在Jupyter笔记本中。
要让它在 Jupyter 笔记本中工作:
- 在您的终端中点击
git clone https://github.com/AllenDowney/ThinkStats2.git
您想要放入的任何文件夹 - 在您的 jupyter notebook 界面中,在与 ThinkStats2/code 文件夹相同的目录中创建一个新 notebook。
- 在笔记本上打
import nsfg
。
我认为您可能会遇到错误,因为您没有从与文件相同的目录运行笔记本,nsfg.py
这意味着 python 找不到脚本,因此无法导入它。
推荐阅读
- split - 如何在 BigQuery 中使用 SPLIT 和 CROSS APPLY 函数
- jupyter-notebook - 在没有终端的情况下访问远程 jupyter 笔记本?
- ios - 如何阻止 SwiftUI 应用程序重置表单数据?
- mongodb - 如何使用 ISODate 在 Rust / Mongodb 中进行查询?
- r - 如何让“while”代码块在达到阈值结束后自行停止终止?
- sql - 查询返回 count(*) 为零的行
- python - 在 python 解释器中使用 for 循环
- java - 处理后如何移动成功/失败的 Azure Blob?
- flutter - 调用 showSlideDialog 时上下文和提供程序出错
- python - 为什么在某行末尾加上逗号时,下一个编码行会出现新错误?