Skip to main content
 首页 » 编程设计

python之在标题中使用正则表达式过滤 Pandas 列

2025年05月04日35pengyingh

我正在将 Excel 文件读入 Pandas 数据框,但其中一个列标题中有大量注释。它在所有这些文本中都有一个关键字“Measure”,它仅特定于这个标题。在“包含”中,我如何过滤标题中某处仅包含关键字“Measure”的任何标题?

下面的代码基于 3 个过滤器过滤我的数据框,但我只想让第三个过滤器识别包含文本“measure”的列本身,而不是必须将其写为“hereisallthe randomtextmeasure”

filtered = df[(df['Mode'].isin(mode_filter)) & (df['Level'].isin(level_filter)) & (df['hereisalltherandomtextmeasure'].isin(measure_filter))] 

我尝试这样做的原因是因为我在多个文件上运行相同的代码,但每个文件的“度量”列都会发生变化。

第一个文件:

Mode | Level | hereisalltherandomtextmeasure 

第二个文件:

Mode | Level | hereismorerandomtextmeasure 

关于它们的唯一静态是它们包含单词 measure,因此理想情况下我想识别仅包含单词 measure 的列,而不是应用完整的字符串。

谢谢。

请您参考如下方法:

IIUC 那么你可以使用 str.contains查找您的匹配字符串是否包含在列中的任何位置:

In [7]: 
df = pd.DataFrame(columns=['hereisall the random textMeasure', 'Measurement', 'asdasds']) 
df.columns[df.columns.str.contains('Measure')] 
 
Out[7]: 
Index(['hereisall the random textMeasure', 'Measurement'], dtype='object')