Поиск значения в любом месте панды DataFrame - PullRequest
0 голосов
/ 30 декабря 2018

Это кажется простым вопросом, но я не мог найти его заданным ранее ( это и это близко, но ответы не велики).

Вопрос в следующем: если я хочу найти значение где-то в моем df (я не знаю, в каком столбце он находится) и вернуть все строки с соответствием.

Какой самый пандейский способ сделать это?Что может быть лучше, чем:

for col in list(df):
    try:    
        df[col] == var
        return df[df[col] == var]
    except TypeError:
        continue 

?

Ответы [ 2 ]

0 голосов
/ 30 декабря 2018

Вы можете выполнить сравнение на равенство для всего DataFrame:

df[df.eq(var1).any(1)]

Другой вариант использует numpy сравнение:

df[(df.values.ravel() == var1).reshape(df.shape).any(1)]
0 голосов
/ 30 декабря 2018

Вы должны использовать isin, это вернуть столбец, это нужно, чтобы проверка строки была холодной 'ответ :-)

df.isin(['bal1']).any()
A        False
B         True
C        False
CLASS    False
dtype: bool

Или

df[df.isin(['bal1'])].stack() # level 0 index is row index , level 1 index is columns which contain that value 
0  B    bal1
1  B    bal1
dtype: object
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...