Select pandas 中的列名称基于多个前缀

Select column names in pandas based on multiple prefixes

我有一个大型数据框,我想从中 select 具有多个不同前缀的统计信息的特定列。我目前的解决方案如下所示:

df = pd.DataFrame(columns=['flg_1', 'flg_2', 'ab_1', 'ab_2', 'aaa', 'bbb'], data=np.array([1,2,3,4,5,6]).reshape(1,-1))
flg_vars = df.filter(regex='^flg_')
ab_vars = df.filter(regex='^ab_')

result = pd.concat([flg_vars, ab_vars], axis=1)

有没有更有效的方法?我需要根据8个前缀过滤我的原始数据,这导致代码行数过多。

对正则表达式使用 | OR:

result = df.filter(regex='^flg_|^ab_')
print (result)
   flg_1  flg_2  ab_1  ab_2
0      1      2     3     4