使用标头

时间:2015-09-18 14:15:56

标签: python regex pandas

我正在Excel文件中读取Pandas数据框,但其中一个列标题中包含大量注释。它在所有这些文本中都有一个关键字“Measure”,仅针对这一个标题。在'contains'中,我如何过滤掉在标题内某处只有关键字'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的列,而不是应用完整的字符串。

感谢。

1 个答案:

答案 0 :(得分:1)

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')