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