col_exclusions = ['分子','分子''分母','分母']
数据框
template <typename T>
class Foo;
template <typename T>
constexpr bool operator==(T lhs, const Foo<T>& rhs);
template <typename T>
class Foo {
public:
constexpr Foo(T k) : mK(k) {}
constexpr friend bool operator==<T>(T lhs, const Foo& rhs);
private:
T mK;
};
template <typename T>
constexpr bool operator==(T lhs, const Foo<T>& rhs) {
return lhs == rhs.mK;
}
int main() {
return 1 == Foo<int>(1) ? 0 : 1;
}
最终输出是id和结果
答案 0 :(得分:5)
使用正则表达式
import re
pat = re.compile('|'.join(col_exclusions),flags=re.IGNORECASE)
final_cols = [c for c in df.columns if not re.search(pat,c)]
#out:
['id', 'Result']
print(df[final_cols])
id Result
0 1 Fail
如果要删除
df = df.drop([c for c in df.columns if re.search(pat,c)],axis=1)
还是纯熊猫方法,这要归功于@ Anky_91
df.loc[:,~df.columns.str.contains('|'.join(col_exclusions),case=False)]
答案 1 :(得分:0)
您可以明确地使用del
来表示包含输入列表中后缀的列:
for column in df.columns:
if any([column.endswith(suffix) for suffix in col_exclusions]):
del df[column]
答案 2 :(得分:0)
您还可以使用以下方法,其中列名被拆分然后与col_exclusions
df.drop(columns=[i for i in df.columns if i.split("_")[-1] in col_exclusions], inplace=True)
print(df.head())