【问题标题】:AttributeError: module 'pandas' has no attribute 'DataFrame' [duplicate]AttributeError:模块'pandas'没有属性'DataFrame'[重复]
【发布时间】:2018-12-13 07:45:00
【问题描述】:

我在 Windows 10 上,使用 Anaconda (Anaconda3-5.3.1-Windows-x86_64)。即使重新安装 Anaconda,我也无法解决此错误。我不相信将 conda 添加到 PATH 可能会导致这种情况。

(base) D:\KZ\Projects\Custom Vision>conda --version 康达 4.5.11

    (base) D:\KZ\Projects\Custom Vision>python test.py
Traceback (most recent call last):
  File "test.py", line 1, in <module>
    import pandas as pd
  File "D:\Users\KZ\Anaconda3\lib\site-packages\pandas\__init__.py", line 42, in <module>
    from pandas.core.api import *
  File "D:\Users\KZ\Anaconda3\lib\site-packages\pandas\core\api.py", line 10, in <module>
    from pandas.core.groupby.groupby import Grouper
  File "D:\Users\KZ\Anaconda3\lib\site-packages\pandas\core\groupby\__init__.py", line 2, in <module>
    from pandas.core.groupby.groupby import (
  File "D:\Users\KZ\Anaconda3\lib\site-packages\pandas\core\groupby\groupby.py", line 7, in <module>
    import copy
  File "D:\KZ\Projects\Custom Vision\copy.py", line 13, in <module>
    df=pd.DataFrame()
AttributeError: module 'pandas' has no attribute 'DataFrame'

(base) D:\KZ\Projects\Custom Vision>

这是 test.py 里面的内容

import pandas as pd 

df = pd.DataFrame()
df["test"]=pd.Series[list("abcd")]

但是,如果我从终端运行 python 并导入 pandas,它就可以正常工作。只有在我执行脚本时才会出现这个问题。

(base) C:\Users\KZ>python
Python 3.7.0 (default, Jun 28 2018, 08:04:48) [MSC v.1912 64 bit (AMD64)] :: Anaconda, Inc. on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import pandas as pd
>>> df = pd.DataFrame()
>>> df
Empty DataFrame
Columns: []
Index: []
>>> exit ()

【问题讨论】:

  • 您在终端测试中是否缺少df["test"]=pd.Series[list("abcd")]?这就是为什么它是一个空数据框的原因?
  • 是的,但这不是这里的问题。就是在终端中,我可以在 python 环境中导入熊猫,但是当我运行我的脚本时,它会显示该错误。
  • @paradoxlover 也许你是对的,在我的例子中,导致错误的文件是一个名为“copy.py”的文件

标签: python windows pandas anaconda jupyter


【解决方案1】:

我是如何理解它的(如果我错了,请纠正我)你的 test.py 比你在这里给出的要复杂一些。特别是关于执行日志中显示的“导入副本”部分。如果我是对的,那么在您的 test.py 文件中 import pandas as pd 之后,您有一个导入副本。 我认为,由于 copy 也是 pandas 中使用的关键字,因此您的 copy.py 的名称可能会与 pandas 混淆。尝试删除它只是为了测试,看看错误是否仍然存在。

【讨论】:

  • 干得不错!谢谢,错误是我在目录中有名为 copy.py 的脚本。我已经重命名了。
【解决方案2】:

通过在 pd.Series 中包含 () 来查看

import pandas as pd 

df = pd.DataFrame()
df["test"]=pd.Series([list("abcd")])

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-28
    • 2019-05-23
    • 2018-09-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多