Python中loc函数无法识别DataFrame中已存在标签的问题求助
pandas loc查找存在索引却报错的原因
索引存在隐形格式差异
肉眼看到的'Toy Story'和实际索引值可能不一致:比如索引里是小写的'Toy story'、开头/结尾带空格的' Toy Story ',或者中间多空格的'Toy Story'。可以用df.index.str.strip()清理空格后再验证,或者直接执行print('Toy Story' in df.index)确认该值是否真的在索引里。set_index未生效
df.set_index('title')默认返回一个新的DataFrame,不会修改原df的索引。如果没把结果重新赋值给df(即没写df = df.set_index('title')),那原df的索引还是原来的默认整数索引,自然找不到'Toy Story'这个标签。索引重复或数据类型异常
如果有多个行的title是'Toy Story',虽然loc应该返回多行,但如果索引中存在数据类型不一致的情况(比如有的是字符串,有的是其他类型),也可能触发错误。可以用df.index.value_counts()查看重复索引,用df.index.dtype检查索引的数据类型是否为字符串。
内容的提问来源于stack exchange,提问作者Alessandro Robuschi
相关产品推荐
相关产品推荐

