Как удалить столбец, если на одном ярлыке содержится 2 разных текста? - PullRequest
1 голос
/ 28 февраля 2020

У меня есть фрейм данных с некоторыми столбцами, которые я хочу удалить. Я уже знаю, как удалить столбец, если найду указанный текст, например:

df.drop(columns=[col for col in df.columns if 'text.'in str(col)],inplace=True)

Я также хотел бы удалить столбцы, содержащие вдоль всего текста различные шаблоны, например:

" text.Corolary.sub.ramdon.sta ", " text.paint.ss1b.docto.not.sta "

Я хочу удалить все столбцы, которые содержат " текст. ", но также ". Sta ". Как я могу объединить его в одной команде независимо от остального текста?

1 Ответ

1 голос
/ 28 февраля 2020

Используйте boolean indexing с DataFrame.loc и маскируете цепочку & для побитового AND, последний фильтр по обратным маскам ~:

m1 = df.columns.str.contains('text')
m2 = df.columns.str.contains('\.sta')
#alternative
#m2 = df.columns.str.contains('.sta', regex=False)

mask = m1 & m2
df = df.loc[:, ~mask]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...