You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何过滤含"TRUE"的Object类型列DataFrame并将列值转小写?

解决方法

你的问题核心是Series没有直接的lower()方法,必须用str.lower()来对Series中的每个字符串元素执行小写转换。另外转字符串时如果原列包含布尔值(比如Python原生True/False),转成字符串后是"True"/"False",只有转小写后才能匹配"true"。

修正后的代码如下:

# 先将列转为字符串类型,统一格式
df["valid"] = df["valid"].astype(str)
# 用str.lower()对每个元素转小写,再筛选匹配行
in_df = df[df["valid"].str.lower() == "true"]

额外补充

  • 如果原列存在缺失值(NaN),astype(str)会把NaN转为字符串"nan",转小写后不会被筛选出来。要是需要主动排除这类情况,可以加过滤条件:
    df["valid"] = df["valid"].astype(str)
    in_df = df[(df["valid"].str.lower() == "true") & (df["valid"].str.lower() != "nan")]
    
  • 也可以不修改原DataFrame,一步完成转换和筛选:
    in_df = df[df["valid"].astype(str).str.lower() == "true"]
    

内容的提问来源于stack exchange,提问作者Blur

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 21:45:30