Поиск по всем значениям набора данных в Python - PullRequest
1 голос
/ 09 марта 2019

Я пытаюсь найти значение в моем наборе данных

Я знаю, что мы можем сделать это

df.loc[df['name'].isin('john', 'tom')]

, но можем ли мы сделать это по-другому, чтобы найти все столбцы и строки в наборе данныхчтобы найти эти слова

я пробовал это, но не получалось

df.iloc['john'.isin(df[:])] 

есть идеи, как это сделать?

1 Ответ

1 голос
/ 09 марта 2019

Вы можете просто сделать df[df.isin(['john', 'tom'])]:

df = pd.DataFrame([["John", "Adam", "Eve"], ["Eve", "Adam", "John"]])
df.isin(["John", "Eve"])
#       0      1     2
# 0  True  False  True
# 1  True  False  True

Однако не выбранные значения заполняются NaN:

df[df.isin(["John", "Eve"])]
#       0    1     2
# 0  John  NaN   Eve
# 1   Eve  NaN  John

Но все равно работает как маска:

df[df.isin(["John"])] = "john"
df
#       0     1     2
# 0  john  Adam   Eve
# 1   Eve  Adam  john

Если вы хотите фильтровать с помощью loc, вам нужно сначала уменьшить размерность:

df.loc[df.isin(["john", "Eve"]).any(axis=1)]
#       0     1     2
# 0  john  Adam   Eve
# 1   Eve  Adam  john

df = pd.DataFrame([["John", "Adam", "Eve"], ["Eve", "Adam", "Alice"]])
df.loc[df.isin(["John", "Eve", "Adam"]).all(axis=1)]
#       0     1    2
# 0  John  Adam  Eve
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...