Найти строку в полном кадре данных - PullRequest
0 голосов
/ 30 сентября 2019

Я ищу строку в фрейме данных и хотел бы получить список заголовков столбцов, в которых встречается эта строка.

Мой фрейм данных:

df
ColumnA ColumnB ColumnC
apple  app       appl
banana  app       banana

СейчасЯ хочу найти: apple, и я должен получить обратно:

ColumnA

Если я ищу banana, я должен получить:

ColumnA
ColumnC

Как я могу получить столбецзаголовок, где строка находится внутри фрейма данных?

Ответы [ 2 ]

4 голосов
/ 30 сентября 2019

Если вы ищете совпадения с строками , как следует из заголовка, вы можете использовать eq для проверки на равенство с данной строкой, any, чтобы проверить, какие столбцы содержат хотя бы одно совпадение, и выполнить логическое индексирование для столбцов кадра данных:

df.columns[df.eq('apple').any(0)]
# Index(['ColumnA'], dtype='object')

df.columns[df.eq('banana').any(0)]
# Index(['ColumnA', 'ColumnC'], dtype='object')
2 голосов
/ 30 сентября 2019

Вот еще один способ

df[df == 'apple'].dropna(axis=1, how='all').columns
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...