我有一个包含以下列的数据框:
d
我想排除那些带有双下划线的字符。 即,仅保留:
[QWE_234, QWE_789234, QWE_2_234, QWE_2_789234 ...]
注意:我还有其他带有双下划线的列,因此我只想排除包含下划线的“ QWE”列。
答案 0 :(得分:1)
我们可以将filter
与regex
一起使用,并带有列表组件。
df = pd.DataFrame(
{"QWE_234": 0, "QWE_789234": 0, "QWE_2_234": 0, "QWE_2_789234": 0}, index=[0]
)
QWE_234 QWE_789234 QWE_2_234 QWE_2_789234
0 0 0 0 0
cols = [col for col in df.columns if col not in df.filter(regex='\w+_\w+_').columns]
print(df[cols])
QWE_234 QWE_789234
0 0 0
答案 1 :(得分:1)
您可以不用regex
:
mask = df.columns.str.startswith('QWE_')
df = df.loc[:, ~mask]
或类似地:
drop_cols = [x for x in df.columns if x.startswith('QWE_')]
df = df.drop(drop_cols, axis=1)