成功解决TypeError: ‘DataFrame‘ object is not callable

问题:

在写for循环时候出错:TypeError: ‘DataFrame’ object is not callable
在这里插入图片描述

原因:

for循环内我调用了DataFrame的unique函数,而在之前的一些语句内,我也定义了unique变量,两者会冲突,根据网上的一些说法,会产生命名域冲突,具体来说,就是:

在Python 的命名域机制中,可以认为存在两个命名域层,一个是 global 层,一个是 local 层。打个比方,当代码运行中遇到了变量/函数 X,那么 Python 会先在 local 层中寻找名字叫做 X 的变量/函数。因为在Python 中,函数名也可以当做一个可以被传递的变量,故而我们之后统称为变量。当 local 层中存在 X 变量时,程序会自动的使用这个local 的 X 代表的变量。如果 local 层中没有 X 的名字存在,那么 Python 会向上到 global 层中寻找。那么当local 和 global 层都存在一个叫做 X 的变量怎么办?Python 的机制是如果 local 中的变量名和 global中的变量名重复,则对 global 中的变量名进行遮蔽。也就是说,如果不在代码中加以说明进行区分的话,系统自动调用的是 local 层中的变量,而不会是 global。
https://blog.csdn.net/junbin_h/article/details/68066143

解决:

将之前定义的变量换个名字,比如我之前定义的变量叫unique,可以改为unique2,再将之前的unique变量删掉即可

uniques=chart["SUBJECT_ID"].unique()
del unique
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值