Pandas DataFrame使用drop删除指定列报错的解决方法
正确删除指定列的方法
你原来的代码存在两处错误:
- 待删除列名的传入格式错误:你把三个列名打包成元组放在列表中,pandas会将这个元组识别为多级索引列的完整列名,无法匹配你单级索引的普通列名,因此抛出找不到列的报错。
inplace参数和赋值操作冲突:inplace=True的作用是直接修改原DataFrame,方法本身的返回值为None,如果同时赋值会导致你原本的DataFrame变量被覆盖为None。
两种可行写法
写法1:不使用inplace参数,直接赋值新对象
df_history_small = df_history_small.drop(['main', 'description', 'icon'], axis=1)
写法2:使用inplace参数,无需额外赋值
df_history_small.drop(['main', 'description', 'icon'], axis=1, inplace=True)
内容的提问来源于stack exchange,提问作者aerioeus
相关产品推荐
相关产品推荐

