pandas删除Stars列Unrated值报KeyError: [Row] not found in axis如何解决
报错原因
df.Stars 会返回单列的Series对象,Series的drop()方法的入参是待删除的行索引值,而非列的取值。你传入的"Unrated"是Stars列的单元格取值,不是行索引,pandas在索引列表中找不到对应值,因此抛出KeyError。
修正方案
方案1:布尔索引筛选(更常用)
直接保留Stars列取值不为"Unrated"的行即可,代码如下:
df = df[df['Stars'] != 'Unrated']
方案2:使用drop方法
如果需要显式调用drop实现删除,先筛选出符合删除条件的行索引再传入:
# 写法1:赋值给新变量 df = df.drop(df[df['Stars'] == 'Unrated'].index, axis=0) # 写法2:直接修改原对象 df.drop(df[df['Stars'] == 'Unrated'].index, axis=0, inplace=True)
内容的提问来源于stack exchange,提问作者Yunus Emre Aslan
相关产品推荐
相关产品推荐

