NameError:在自定义程序包中调用函数时未定义名称“ pd”

时间:2019-02-15 18:12:55

标签: python pandas

上下文

我正在为数据科学学习python,并且正在使用Foursquare API探索坐标附近的场所。它返回一个JSON文件,因此我创建了一个函数,该函数使用“ foursquare”包(github.com/mLewisLogic/foursquare)从Foursquare结果返回Pandas DataFrame,然后提取数据并将其追加到DataFrame。

该功能可以在我的Jupyter Notebook中使用(您可以在https://github.com/dacog/foursquare_api_tools/blob/master/foursquare_api_tools/foursquare_api_tools.py处检查该功能),尽管如此,我还是想让其他人更轻松地尝试创建一个可以直接从github使用pip安装的软件包。我成功创建了一个程序包,并将其发布到github进行测试,但是当我尝试使用该函数时,它会返回

NameError: name 'pd' is not defined

尝试该软件包的步骤

!pip install git+https://github.com/dacog/foursquare_api_tools.git#egg=foursquare_api_tools

# @hidden_cell
CLIENT_ID = 'Secret' # your Foursquare ID
CLIENT_SECRET = 'Secret' # your Foursquare Secret
VERSION = '20180605' # Foursquare API version

from foursquare_api_tools import foursquare_api_tools as ft

ft.venues_explore(client,lat='40.7233',lng='-74.0030',limit=100)

我得到

NameError                                 Traceback (most recent call last)
<ipython-input-47-0a062ed9d667> in <module>()
      3 import pandas as pd
      4 
----> 5 ft.venues_explore(client,lat='40.7233',lng='-74.0030',limit=100)

/opt/conda/envs/DSX-Python35/lib/python3.5/site-packages/foursquare_api_tools/foursquare_api_tools.py in venues_explore(client, lat, lng, limit)
      3     This returns a pandas dataframe with name, city ,country, lat, long, postal code, address and main category as columns'''
      4         # creata a dataframe
----> 5         df_a = pd.DataFrame(columns=['Name', 'City', 'Latitude','Longitude','Category','Postal Code', 'Address'])
      6         ll=lat+','+lng
      7         #get venues using client https://github.com/mLewisLogic/foursquare

NameError: name 'pd' is not defined

我在__init__.py中的函数内部的主笔记本中尝试import pandas as pd总是得到相同的结果。

您可以在https://github.com/dacog/foursquare_api_tools

处检查代码

这是我第一次创建一个软件包,并且是python的新手,因此将不胜感激。

更新 在进行测试时,Pandas在环境中工作良好。 enter image description here

已安装的Python版本为:

!which python --> /home/jupyterlab/conda/bin/python

!whereis python
/usr/bin/python /usr/bin/python2.7 /usr/lib/python2.7 /etc/python /etc/python2.7
/usr/local/lib/python2.7 /usr/share/python
/home/jupyterlab/conda/bin/python /home/jupyterlab/conda/bin/python3.6
/home/jupyterlab/conda/bin/python3.6-config /home/jupyterlab/conda/bin/python3.6m /home/jupyterlab/conda/bin/python3.6m-config /usr/share/man/man1/python.1.gz

2 个答案:

答案 0 :(得分:2)

您在import pandas as pd中缺少foursquare_api_tools.py语句。只需在该文件的顶部添加该行,就可以了。

提示错误:NameError,在第5行中调用pd.DataFrame,因为没有导入语句,Python不知道“名称” pd的含义

答案 1 :(得分:0)

除了将“导入熊猫作为 pd”作为 seaborn 到您的库之外,还可以使用:

Import pandas as pd                                                                      
Import seaborn as sns

Sns.set()

这应该适用于 Jupyter 笔记本