这与另一个post
相关但不同data = {'spike-2': [1,2,3], 'hey spke': [4,5,6], 'spiked-in': [7,8,9], 'no': [10,11,12]}
df = pd.DataFrame(data)
如果列名匹配多个子字符串条件,我想按名称选择列。
我尝试使用AND运算符即&
spike_cols = [col for col in df.columns if ('spike') & ('hey') in col]
这样我就可以精确地获得一列'嘿穗' 我也用过
dfnew = df.filter(regex='spike'&'hey')
收到错误
TypeError:&:'str'和'str'不支持的操作数类型
答案 0 :(得分:1)
这是一个没有 regex 的方法,只需使用in
来检查子字符串条件:
df[[col for col in df.columns if 'hey' in col and 'spike' in col]]
或者,如果您想使用正则表达式,您可以执行以下操作:
df.filter(regex='(?=.*hey)(?=.*spike)')