我已经编写了计算方差的程序
credit_card = pd.read_csv("default_of_credit_card_clients_Data.csv", skiprows=1)
for col in credit_card:
var[col]=np.var(credit_card(col))
我收到此错误
Traceback (most recent call last):
File "C:/Python34/project.py", line 11, in <module>
var[col]=np.var(credit_card(col))
TypeError: 'DataFrame' object is not callable
2条答案
按热度按时间6ljaweal1#
您似乎需要
DataFrame.var
:默认情况下按N-1规范化。可以使用ddof参数更改此设置
样品:
如果需要
numpy.var
的numpy解决方案:差异是因为默认情况下
ddof=1
在pandas
中,但可以将其更改为0
:pengsaosao2#
当你调用一个PandasDataFrame对象a-使用圆括号
()
--就像它是一个类或函数一样时,就会发生这个错误。长话短说,PandasDataFrame是一个“DataFrame”类型的对象,它的属性使一个对象成为可调用的,它是空的。例如,在OP中,罪魁祸首是:
因为之前
credit_card
是通过定义 Dataframe 最常用的方法是通过构造函数
df = pd.DataFrame(data)
,而这个df
也不能被调用:df()
也会给予同样的错误。构造 Dataframe 对象的其他函数列表可以在pandas documentation中找到。此问题本质上是打字错误。以下是一些常见原因/解决方案:
1.也许您试图选择 Dataframe 的某些列,在这种情况下,请使用方括号
[]
:1.也许您正在尝试调用一个 Dataframe 方法,在这种情况下,请在 Dataframe 的名称之后写入方法的名称,用点
.
分隔:1.也许您的环境中有一个函数和一个 Dataframe 共享相同的名称。例如,
在这种情况下,请确保使用不同的名称重新定义它们。