导入模块下的模块(pandas.io.data)

时间:2014-12-29 10:01:33

标签: python pandas import module

我刚刚遇到困扰我的事情 我一直以为导入一个父母'模块应该导入其下的所有内容 但是,在跑步时:

import pandas
pandas.io.data

我收到错误:AttributeError: 'module' object has no attribute 'data'

然而跑步:

import pandas.io.data

导致无错误并导入模块 有人可以解释一下这种行为吗?

2 个答案:

答案 0 :(得分:2)

原因是pandas.iopandas包的子模块。子包或子模块不会自动导入,但如果您愿意,可以在模块的__init__.py中执行此操作(通常您不想这样做)。

python中的

Packaging非常简单。如果文件夹具有__init__.py文件,则将其视为包。在此文件中,您可以为您的包布置任何初始化例程。该文件也可以为空。如果包中的子文件夹包含自己的__init__.py,则此文件夹将被视为子包。

如果您看到pandas folder structure,您会看到io是一个子包。主__init__.py不会导入pandas.io.data,这就是您必须自己完成的原因。

答案 1 :(得分:0)

"进口"不导入子模块。 你可以写:

from pandas import *

但不推荐,因为它违反了原则"明确比隐含更好"。