无法使用 Pandas 在 Python 中导入数据
Posted
技术标签:
【中文标题】无法使用 Pandas 在 Python 中导入数据【英文标题】:Cannot Import Data in Python Using Pandas 【发布时间】:2017-11-19 12:37:58 【问题描述】:我正在学习以下机器学习教程:
http://machinelearningmastery.com/machine-learning-in-python-step-by-step/
这是我的 (mac) 开发环境:
Python 2.7.10
scipy: 0.13.0b1
numpy: 1.8.0rc1
matplotlib: 1.3.1
pandas: 0.20.2
sklearn: 0.18.1
当我尝试运行脚本以从包含 CSV 数据的 URL 加载数据时,我收到以下错误:
Traceback (most recent call last):
File "load_data.py", line 4, in <module>
dataset = pandas.read_csv(url, names=names)
NameError: name 'pandas' is not defined
这是脚本:
# Load dataset
url = "https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data"
names = ['sepal-length', 'sepal-width', 'petal-length', 'petal-width', 'class']
dataset = pandas.read_csv(url, names=names)
【问题讨论】:
Traceback 表示您的 csv 数据除了 pandas 命名对象之外没有任何指示。你是什么import
线?如果它读取import pandas as pd
,那么您必须使用 pd 限定所有 pandas 对象:pd.read_csv()
.
【参考方案1】:
你的错误说:
dataset = pandas.read_csv(url, names=names)
NameError: name 'pandas' is not defined
这意味着您正在尝试使用 pandas.read_csv()
而不先导入 Pandas。当你想使用外部库时,你必须导入它。如果您的机器上没有安装它,您可能也必须先安装它。假设您的机器上安装了 pandas,此代码将起作用:
import pandas
url = "https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data"
names = ['sepal-length', 'sepal-width', 'petal-length', 'petal-width', 'class']
dataset = pandas.read_csv(url, names=names)
输出:
dataset.head(3)
sepal-length sepal-width petal-length petal-width class
0 5.1 3.5 1.4 0.2 Iris-setosa
1 4.9 3.0 1.4 0.2 Iris-setosa
2 4.7 3.2 1.3 0.2 Iris-setosa
【讨论】:
导入语句的添加为我消除了错误,但是,我无法让数据以这种方式显示。您是否将“dataset.head(3)”语句包含在脚本的第五行? 好的,刚刚在 dataset.head 调用之前添加了一个打印命令并让它工作!【参考方案2】:你可以先下载数据再导入
import urllib
import pandas as pd
file_path = "./iris.csv"
#download data
urllib.request.urlretrieve("https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data", file_path)
#load it
dataset = pd.read_csv(file_path, names=names)
希望对你有帮助
【讨论】:
【参考方案3】:您收到该错误是因为尚未导入“pandas”。 pandas 是 python 的导入库。
修复: 导入熊猫
之后就可以使用了。
更好的选择: 将熊猫导入为 pd
=> 'pd' 将是您脚本中 pandas 的缩写形式。建议以这种方式导入,以减少每次需要用代码编写“pandas”时都需要重新输入。
干杯!
【讨论】:
以上是关于无法使用 Pandas 在 Python 中导入数据的主要内容,如果未能解决你的问题,请参考以下文章
python 在Pandas中导入CSV文件(Python)
在 python 中导入 pandas 会改变 matplotlib 处理日期时间对象的方式?