使用正则表达式过滤熊猫数据框

时间:2019-07-13 17:45:36

标签: python regex pandas dataframe

我的数据框df包含一组列,其中包括两个类似的列:

'age-15y','age-5y'

我想对数据框应用过滤器,以便获得名称以每个字符串结尾的列,因此'5y' and '15y'将是分开的。

如果我尝试

    df.filter(regex='5y'+'$')

然后我也将获得以'15y'结尾的列,这不是我想要的

有没有一种方法可以方便地实现我所追求的目标?我希望有一种使用正则表达式并指定应应用于的字符数的方法

1 个答案:

答案 0 :(得分:0)

.filter()$对我有用:

df = pd.DataFrame({'age-15y':np.random.choice(['A','B'], 500),
                   'age-5y':np.random.uniform(10,15,500),
                   'age-15y-abc':np.random.uniform(-32,105,500)})

print(df.filter(regex='5y').head(2))
print(df.filter(regex='5y$').head(2))

返回

# without '$'
  age-15y     age-5y  age-15y-abc
0       B  14.044916    -4.875092
1       B  13.271348    28.054364

# with '$'
  age-15y     age-5y
0       B  14.044916
1       B  13.271348