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

标签 python regex pandas

我正在将 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')

关于python - 在标题中使用正则表达式过滤 Pandas 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32654247/

相关文章:

python - 使用 Pandas AWS Glue Python Shell 作业

python - 如何提取具有给定值序列的 2 个后续列的行?

python - 如何使用 setuptools 安装 python cli 脚本而不重复?

python - 根据 OptionMenu 的选择运行命令

python - 使用正则表达式从文件中获取测试详细信息

Ruby:如何在保留分隔符的同时拆分正则表达式上的字符串?

python - 如何用 Decimal 创建 Pandas 系列?

python - 在 vim 中高亮显示 python 代码块

java - 替换字符串的前两个逗号

python - 从 groupby 中选择具有最高值的行