无法使用 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 中导入数据的主要内容,如果未能解决你的问题,请参考以下文章

无法在 Pandas 中导入逗号分隔的引用文件

python 在Pandas中导入CSV文件(Python)

python 在Pandas中导入CSV文件并转换值

在 python 中导入 pandas 会改变 matplotlib 处理日期时间对象的方式?

在python 2.7中导入熊猫时出现“ValueError:未知语言环境:UTF-8” [重复]

如何在 Pandas Dataframe 中导入多个 excel 文件