报错AttributeError: 'NoneType' object has no attribute 'replace'的原因与解决
错误原因
当调用replace方法时指定了inplace=True,该方法会直接修改原DataFrame对象,返回值为None。第一次运行代码时,cc_apps_train和cc_apps_test原本是有效的DataFrame,执行cc_apps_train = cc_apps_train.replace(..., inplace=True)后,变量被重新赋值为None。第二次运行时,变量已经变成None类型,再调用replace方法就会触发AttributeError: 'NoneType' object has no attribute 'replace'。
修复方法
有两种可靠的修复方式:
方式一:移除inplace=True,保留返回赋值
让replace方法返回修改后的DataFrame,再赋值给原变量:
# 导入必要库 import numpy as np import pandas as pd # 补充pandas导入,因为用到了pd.NA # 将数据中的'?'替换为pd.NA cc_apps_train = cc_apps_train.replace('?', pd.NA) cc_apps_test = cc_apps_test.replace('?', pd.NA) print(cc_apps.tail(17))
方式二:保留inplace=True,但不重新赋值
直接调用replace修改原对象,无需再赋值:
# 导入必要库 import numpy as np import pandas as pd # 补充pandas导入 # 将数据中的'?'替换为pd.NA cc_apps_train.replace('?', pd.NA, inplace=True) cc_apps_test.replace('?', pd.NA, inplace=True) print(cc_apps.tail(17))
额外提示:你的代码中使用了pd.NA但未导入pandas,首次运行时应该会触发NameError,建议补充导入语句。
内容的提问来源于stack exchange,提问作者Fiza Aslam
相关产品推荐
相关产品推荐

