【问题标题】:"TypeError: 'dict' object is not callable" in Python pandas DataFramePython pandas DataFrame中的“TypeError:'dict'对象不可调用”
【发布时间】:2018-03-02 06:18:43
【问题描述】:

我将 pandas 导入为 pd。

>>>import pandas as pd

分配的系列变量“城市名称”和“人口”

>>> city_names=pd.Series(['San Fransisco','San Jose','Sacromento'])
>>> population=pd.Series([8964,91598,034892])

创建数据帧

>>> pd.DataFrame=({'City Name': city_names, 'Population':population})

在将 DataFrame 分配给变量“城市”时,

>>> cities=pd.DataFrame({'City Name ' : city_names, 'Population' : population})

我收到以下错误:

Traceback (most recent call last):
  File "<pyshell#17>", line 1, in <module>
    cities=pd.DataFrame({'City Name ' : city_names, 'Population' : population})
TypeError: 'dict' object is not callable

还知道 'dict' 是一个带有 (key,value) 对的字典!请让我知道为什么会发生此错误。我也研究了其他问题,但找不到帮助。

【问题讨论】:

  • 如果可能,请告诉我如何以二维数组或列表的形式访问“城市”变量。

标签: pandas dictionary dataframe typeerror python-3.6


【解决方案1】:

您的代码 pd.DataFrame=({'City Name': city_names, 'Population':population})pd.DataFrame 函数替换为字典。


@Ankur 请根据您的喜好修改此编辑。
PiR 编辑:

pd.DataFrame 是 pandas 定义的一个类。一个类是“可调用的”,这意味着你可以用括号来调用它,比如pd.DataFrame()。但是,在 Python 中,= 是一个赋值运算符,而您执行了 pd.DataFrame = {},它将一些字典分配到 DataFrame 类构造函数曾经所在的位置。你不应该使用@Ankur 指定的那一行。它每次都会破坏你的东西。

【讨论】:

  • 您所做的事情意外地为pd 模块的DataFrame 属性分配了一个字典。然后当你尝试通过调用数据框构造函数pd.DataFrame来创建数据框时,python找到了一个字典而不是构造函数。哎呀!
  • 是的,因为在创建城市变量之前,您已经为 pd.DataFrame 分配了一个字典。重新启动您的 python repl 并再次运行您的代码,除非不要运行我在回答中提到的行。
  • 或使用import importlib; importlib.reload(pd)
  • pd.DataFrame 是由pandas 定义的类。一个类是“可调用的”,这意味着你可以用括号来调用它,比如pd.DataFrame()。但是,在 Python 中,= 是一个赋值运算符,而您执行了 pd.DataFrame = {},它将一些字典分配到 DataFrame 类构造函数曾经所在的位置。您应该使用@Ankur 指定的那一行。它每次都会破坏你的东西。
  • @piRSquared - 也许最好是添加这个 cmets 来回答,因为非常有价值,你怎么看?是否可以编辑Ankur 答案?
猜你喜欢
  • 1970-01-01
  • 2020-03-24
  • 2016-03-07
  • 1970-01-01
  • 2011-10-01
  • 2021-11-01
  • 2012-10-31
  • 2021-08-23
相关资源
最近更新 更多