pandas执行df.drop后报NoneType无drop/head属性错误如何解决
问题原因
- pandas中
drop方法设置inplace=True时,会直接修改原DataFrame对象,无有效返回值(返回值为None)。 - 你的代码中将
drop的返回值(None)重新赋值给了变量df,导致原DataFrame被覆盖为空值,后续调用任何DataFrame方法都会触发NoneType相关报错。
修复方案
你可以任选以下任意一种写法修改代码,不要同时使用赋值操作和inplace=True参数:
方案1:保留inplace=True,去掉赋值操作
# 直接修改原df,不需要赋值 df.drop( ['PassengerId', 'Name', 'SibSp', 'Parch', 'Ticket', 'Embarked'], axis = 'columns', inplace = True ) df.head()
方案2:去掉inplace=True,保留赋值操作
# drop返回修改后的新DataFrame,赋值给df完成更新 df = df.drop( ['PassengerId', 'Name', 'SibSp', 'Parch', 'Ticket', 'Embarked'], axis = 'columns' ) df.head()
内容的提问来源于stack exchange,提问作者Raihan Hosain
相关产品推荐
相关产品推荐

