【问题标题】:Cannot Import Data in Python Using Pandas无法使用 Pandas 在 Python 中导入数据
【发布时间】: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().

标签: python python-2.7 pandas machine-learning data-science


【解决方案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”时都需要重新输入。

    干杯!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-09
      • 2020-01-24
      • 1970-01-01
      • 2020-07-19
      • 2015-02-16
      • 2019-10-17
      • 1970-01-01
      • 2019-08-17
      相关资源
      最近更新 更多