Python панды DataFrame выделения строк и столбцов на основе конкретного условия - PullRequest
0 голосов
/ 01 марта 2019

У меня есть следующее:

  cl1 cl2 cl3 .... cln
0  aaa bbb ccc .... nnn
1  bbb aaa ccc .... nnn
2  xxx xxx xxx .... xxx

Нужно выбрать строки, значение каких столбцов (любой из них) .lower () == 'aaa' Так что это 0 и 1 строки и вывод долженбыть:

   cl1 cl2 cl3 .... cln
0  aaa bbb ccc .... nnn
1  bbb aaa ccc .... nnn

Я пробовал много способов, но все они требуют указания имен столбцов, но в моем случае я понятия не имею об именах столбцов.

Так что в принципе что-то подобное будетработать, если я знаю имена столбцов:

df.loc[~df['something1'].str.lower().str.strip().isin(['something2'])]

1 Ответ

0 голосов
/ 01 марта 2019

IIUC вы можете использовать:

df[df.eq('aaa').any(axis=1)]

   cl1  cl2  cl3  cln
0  aaa  bbb  ccc  nnn
1  bbb  aaa  ccc  nnn

Если lower() необходимо принять во внимание:

df[df.apply(lambda x: x.str.lower()).eq('aaa').any(1)] #thanks Chris 

Или:

df[df.applymap(str.lower).eq('aaa').any(axis=1)] 

Второйодин быстрее, и первый может обращаться с NaN.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...