使用Pandas筛选Status为Unavailable的行时得到空DataFrame的问题
解决方法
以下是几种常见的排查和解决思路:
排查字符串格式问题:大概率是目标字符串前后存在空格或隐藏特殊字符,导致精确匹配失败。先查看
Status列的所有唯一值确认:print(df['Status'].unique())如果发现带空格的版本,用
str.strip()去除前后空格后再匹配:df2 = df[df['Status'].str.strip() == "Unavailable"]检查大小写匹配:若实际数据中的值大小写和你写的不一致(比如
unavailable或UNAVAILABLE),可以用不区分大小写的方式匹配:df2 = df[df['Status'].str.lower() == "unavailable"]确认列名正确性:检查列名是否存在拼写错误,比如是否写成了
status或Statuss。查看所有列名验证:print(df.columns)验证数据类型:如果
Status列是分类(category)类型,可能会导致匹配异常,先转为字符串类型再尝试:df['Status'] = df['Status'].astype(str) df2 = df[df['Status'] == "Unavailable"]快速验证匹配行数:用
sum()统计符合条件的行数,确认处理逻辑是否生效:print((df['Status'].str.strip() == "Unavailable").sum())
内容的提问来源于stack exchange,提问作者kanika
相关产品推荐
相关产品推荐

