我的数据框df包含一组列,其中包括两个类似的列:
'age-15y','age-5y'
我想对数据框应用过滤器,以便获得名称以每个字符串结尾的列,因此'5y' and '15y'
将是分开的。
如果我尝试
df.filter(regex='5y'+'$')
然后我也将获得以'15y'结尾的列,这不是我想要的
有没有一种方法可以方便地实现我所追求的目标?我希望有一种使用正则表达式并指定应应用于的字符数的方法
答案 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