从初始df经loc/iloc筛选后新增条件列报method object is not subscriptable错误如何解决
报错原因
你遇到的报错核心来自df_n赋值行的语法错误:copy是Pandas DataFrame的内置方法,你未添加括号调用该方法,而是直接将方法本身赋值给了df_n变量。此时df_n属于方法对象,不支持[]下标取值操作,后续尝试用df_n['count']新增列时就会触发method object is not subscriptable报错。
修复方案
修改生成df_n的代码,给copy添加括号执行方法调用即可:
# 原错误代码 # df_n=df_p1.iloc[:,np.r_[4,6,7]].copy # 修正后代码 df_n=df_p1.iloc[:,np.r_[4,6,7]].copy()
额外排查点
- 你第一行筛选
Df_p1的代码中case = true的布尔值需要写为Python标准的大写True,否则会触发name 'true' is not defined报错 - 确认
np.where逻辑中引用的something列,确实在你切片取出的第4、6、7三列范围内,避免后续出现列不存在的报错
内容的提问来源于stack exchange,提问作者MOP
相关产品推荐
相关产品推荐

