Pandas DataFrame筛选显示含特定符号单元格的实现方法
pandas筛选包含指定字符串的单元格实际值方法
str.contains() 方法本身返回的是与原列等长的布尔序列,仅用于标记每行是否匹配规则,要取出匹配项的实际内容,只需要把这个布尔序列作为行筛选掩码传入即可。
- 仅查看所有含
/mo的price字段内容:
# 加na=False避免列内空值导致筛选报错 abnormal_price = df.loc[df["price"].str.contains("/mo", na=False), "price"] # 打印查看所有匹配的具体值 print(abnormal_price)
- 若需要查看这些异常价格对应的整行其他字段信息,直接用布尔序列筛选整个DataFrame即可:
abnormal_rows = df[df["price"].str.contains("/mo", na=False)] print(abnormal_rows)
- 若需要快速统计这类异常数据的占比、不同取值的出现频次,可以直接调用统计方法:
# 统计异常/正常数据的总条数 print(df["price"].str.contains("/mo", na=False).value_counts()) # 统计每一种异常格式price的出现次数 print(abnormal_price.value_counts())
注意:如果你的price列存在空值,必须给
str.contains()加上na=False参数,否则空值位置会返回NaN,传入筛选逻辑时会触发报错。
内容的提问来源于stack exchange,提问作者ela rednax
相关产品推荐
相关产品推荐

