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

正则表达式OR用法及DataFrame列筛选异常问题求助

解决DataFrame列筛选问题:同时匹配以p开头或包含s的列

问题原因

你原来的代码里用'(^p)' or '(s)'是Python的逻辑或运算,由于'(^p)'是非空字符串(被视为True),所以整个表达式的结果就是'(^p)',自然只会筛选以p开头的列,不会匹配包含s的列。

修正方案

正则表达式里的“或”需要用|符号来表示,而非Python的or关键字。正确的正则表达式可以写成'^p|s'(或者更明确的'(^p)|(s)'),这样就能同时匹配两类列:

  • ^p:匹配以p开头的列名
  • s:匹配包含s的列名

示例代码

import pandas as pd

# 构造测试DataFrame
df = pd.DataFrame({
    'price': [100, 200],
    'product': ['A', 'B'],
    'sales': [50, 60],
    'total': [150, 260]
})

# 正确的筛选代码
df2 = df.filter(regex='^p|s')
print(df2)

运行后会输出包含price、product、sales的列,完全符合需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 15:15:37