【发布时间】:2021-01-07 22:54:12
【问题描述】:
我目前正在学习使用 Python 运行的 FlatIron Academy 的数据科学训练营预备课程。在其中一课中,目标是在特定位置显示带有标记的地图。例如,在布宜诺斯艾利斯放置标记的代码是:
coordinates = [-34.6037, -58.3816]
ba_latitude = coordinates[0]
ba_longitude = coordinates[1]
!pip install folium
import folium
buenos_map = folium.Map([ba_latitude, ba_longitude])
buenos_map
此时我应该提一下,我通过 Anaconda 在 Spyder 上使用 Python。所以也许在这里使用!pip 是我的第一个错误。
现在,当我第一次在 Spyder 中运行此代码时,并没有发生什么奇怪的事情——只是出现了一个图像文件的文件名,但没有显示图像(我真的不知道该图像文件是在哪里创建的或任何关于它的东西,我很好奇是否可以在 Spyder 中显示类似的图像或交互式地图,但这不是现在这个问题的重点)。但是,当我在同样通过 Anaconda 启动的 Jupyter Notebook 中运行完全相同的代码时,代码运行良好,一切都很好:弹出了一个交互式地图,其中包含应有的标记。
第二天,课程包括将 Excel 文件导入字典。示例中使用的代码是:
import pandas as pd
file_name = './cities.xlsx'
travel_df = pd.read_excel(file_name)
cities = travel_df.to_dict('records')
我自己的代码版本是:
import pandas as pd
corridor_cards_df = pd.read_excel('./Corridor Cards June 2019.xlsx')
ccd = corridor_cards_df.to_dict('records')
for i in range(len(ccd)):
print(i)
print(ccd[i])
print("\n")
因为我想遍历每个项目并显示它。这在 Spyder 和 Jupyter 中也都能完美运行。
当我上绘制数据的课程时,问题就开始发生了。教训是这样说的:
“我们可以使用各种 Python 可视化工具来显示我们的数据。在本课中,我们将使用 Plotly,因为它可以生成漂亮的图形并且易于使用。
我们可以使用pip轻松下载plotly库。
Pip 是一个包管理系统,可让我们轻松下载和安装用 Python 编写的库。如果您正在使用 Learn,我们已经为您安装了 pip。我们不会在此处介绍如何安装 pip,但是您可以在网上找到有关安装 pip for Mac 或 for Windows 的说明。此外,如果您熟悉使用终端并拥有
easy_install,则可以从终端运行sudo easy_install pip。"
我心想,还是安装pip吧,于是我点了windows的链接,点了KIJUKA的视频,也点了视频说明里的链接。此时我看到我实际上不需要安装 pip,因为我使用的是 Python 3.6.5 版本。但是,每当我尝试使用python -m pip install -U pip 在 Spyder 中升级 pip 时,我都会得到SyntaxError: invalid syntax。在这一点上,我意识到 Python、Anaconda 和 Anaconda Powershell Prompt 之间可能存在差异,Pip 和 Conda 之间也可能存在差异。我想我设法使用 Conda 正确安装了 Pip(尽管此时我的记忆真的很模糊,而且我在 Conda Powershell 提示符中找不到我所有命令的日志)。我记得做的下一件事是将 Anaconda 和其中的所有应用程序(包括 Jupyter 和 Spyder)更新到最新版本。然后我收到一条消息,说我的应用程序 Spyder 启动可能产生了错误,因此我将其恢复到版本 3.2.8。
我不知道这是在流程的哪个阶段发生的,但是现在当我导入 pandas 并从中调用方法时,我总是收到一个属性错误。例如,当我运行上面的代码时,我得到:AttributeError: module 'pandas' has no attribute 'read_excel'。我有多个标题为 pandas.py 的文件,它们并不完全相同。他们都没有列出任何名为read_excel的方法,即使我使用folium,我也会收到错误:AttributeError: module 'pandas' has no attribute 'DataFrame'。
老实说,我觉得自己是个计算机文盲,不知道发生了什么,不知道在哪里寻找答案,我做错了什么等等......任何帮助将不胜感激。
【问题讨论】:
标签: python pandas pip anaconda spyder