如何筛选Pandas DataFrame中NAME列包含字符'o'的全部行
Pandas DataFrame 按列内容筛选的实现方法
原代码问题说明
df["NAME"].filter(like ="o") 是Pandas提供的索引/列名筛选方法,仅会匹配行索引或列名中包含指定字符的条目,无法对列内的单元格值做匹配,因此不符合你的需求。
正确实现代码
要筛选NAME列包含小写字母o的完整行,使用str.contains()配合布尔索引即可:
# 仅匹配包含小写o的条目,返回完整行 target_df = df[df["NAME"].str.contains("o")]
如果需要不区分大小写,同时匹配大写O,可以添加case参数:
# 不区分大小写匹配o target_df = df[df["NAME"].str.contains("o", case=False)]
效果验证
针对你给出的示例数据,运行上述代码后,target_df会仅保留NAME为John、HOBBY为football的行,完全符合预期。
内容的提问来源于stack exchange,提问作者Tshering Tashi
相关产品推荐
相关产品推荐

