Python和导入子模块 - 熊猫示例

时间:2017-05-25 13:45:05

标签: python pandas import

我试图在pandas.tseries.holiday中使用pandas模块,但由于某种原因它没有显示出来。我尝试了以下方法:

import pandas as pd

pd.tseries.<TAB>

这确实给了我一个选项列表,但holiday就在其中。根据{{​​1}}的文档,它应该像我上面尝试的一样简单。

这是我系统的Python。我在Jupyter中使用Anaconda,然后在终端甚至在Emacs中尝试过,但它从未被发现。所以它必须是我不知道的一般设计选择。我找到了线索,但我找到的所有信息都告诉我,导入整个模块或部分模块是一个主观选择 - 例如:readability versus name-space pollution等。

最后我尝试手动导入它(下一步是从pandas git repository下载实际的holiday文件。 所以我做了:

holiday

......我看到了我需要的所有东西 - 太棒了!

但是这里发生了什么?

当我使用上述语句导入pandas时,查看actual code of holidays.py没有给出任何关于为什么不导入文件/模块的提示。

修改

以下是一些其他信息,说明from pandas.tseries import holiday # no error holiday.<TAB> 本身未找到holiday的方式,但可以明确导入和使用

pandas.tseries

1 个答案:

答案 0 :(得分:1)

简单地使用import pandas as pd不会自动导入pandas库的所有子模块(正如TomAugspurger在上面的评论中所指出的那样)。

这是因为pandas库的__init.py__不会导入包括holiday子模块模块在内的所有内容。

要么调整__init__.py文件,要么意识到必须明确导入pandas库的某些子模块!