Проверка содержится ли каждый элемент в DataFrame Pandas

DataFrame.isin (values) проверяет, содержится ли каждый элемент в DataFrame в значениях.

Синтаксис

DataFrame.isin(values)

Где, значениями могут быть Iterable, DataFrame, Series или dict.

isin() возвращает DataFrame с логическими значениями, показывающими, содержится ли каждый элемент в DataFrame в значениях.

Пример 1: с Iterable

В этом примере мы применим DataFrame.isin() с диапазоном, то есть Iterable. Значения DataFrame, которые соответствуют значениям в диапазоне, выводят True, а другие – False в соответствующем индексе.

import pandas as pd

#initialize dataframe
df = pd.DataFrame({'a': [2, 4], 'b': [2, 0]})

#check if the values of df are in the range(1,6)
out = df.isin(range(1,6))

print('DataFrame\n-----------\n',df)
print('\nDataFrame.isin(range(1,6))\n-----------\n',out)

Вывод:

DataFrame
-----------
    a  b
0  2  2
1  4  0

DataFrame.isin(range(1,6))
-----------
       a      b
0  True   True
1  True  False

Ясно, что 2,4 находятся в диапазоне (1,6), а 0 – нет. Следовательно, для позиции элемента 0 DataFrame.isin() возвращает False.

Пример 2: с Series

В этом примере мы применим DataFrame.isin() с Series. Значения DataFrame, которые соответствуют значениям вместе с индексом, возвращают True, а другие возвращают False для соответствующего индекса.

import pandas as pd

#initialize dataframe
df = pd.DataFrame({'a': [2, 4], 'b': [2, 0]})

#series
s = pd.Series([2, 0])

#check if the values of df are in the range(1,6)
out = df.isin(s)

print('DataFrame\n-----------\n',df)
print('\nSeries\n-----------\n',s)
print('\nDataFrame.isin(series)\n-----------\n',out)

Вывод:

D:\>python example.py
DataFrame
-----------
    a  b
0  2  2
1  4  0

Series
-----------
 0    2
1    0
dtype: int64

DataFrame.isin(series)
-----------
        a     b
0   True  True
1  False  True

Ясно, что при индексе 0,2,2 DataFrame соответствует 2 из Series, но при индексе 1 первый элемент 4 не соответствует.

Пример 3: с DataFrame

В этом примере мы применим DataFrame.isin() с другим. Значения DataFrame, которые соответствуют значениям вместе с индексом, возвращают True, а другие возвращают False для соответствующего индекса.

import pandas as pd

#initialize dataframe
df = pd.DataFrame({'a': [2, 4], 'b': [2, 0]}, index=['i1', 'i2'])

#series
df1 = pd.DataFrame({'a': [2, 4], 'b': [2, 3]}, index=['i1', 'i3'])

#check if the values of df are in the range(1,6)
out = df.isin(df1)

print('DataFrame\n-----------\n',df)
print('\nDataFrame df1\n-----------\n',df1)
print('\nDataFrame.isin(df1)\n-----------\n',out)

Вывод:

DataFrame
-----------
     a  b
i1  2  2
i2  4  0

DataFrame df1
-----------
     a  b
i1  2  2
i3  4  3

DataFrame.isin(df1)
-----------
         a      b
i1   True   True
i2  False  False

Индекс i2 не совпадает с индексом в df1. Следовательно, эта строка возвращает все ложные значения.

Пример 4: со словарем

В этом примере мы применим DataFrame.isin() со словарем. Ключи словаря считаются столбцами, а соответствующие значения считаются значениями столбцов. isin (dict) возвращает True для тех значений, где ключи dict совпадают с именем столбца, а значения словаря совпадают со значениями столбца DataFrame.

import pandas as pd

#initialize dataframe
df = pd.DataFrame({'a': [2, 4], 'b': [2, 0]}, index=['i1', 'i2'])

#dictionary
dict = {'a': [2, 4]}

#DataFrame.isin(dict)
out = df.isin(dict)

print('DataFrame\n-----------\n',df)
print('\nDictionary\n-----------\n',dict)
print('\nDataFrame.isin(dict)\n-----------\n',out)

Вывод:

DataFrame
-----------
     a  b
i1  2  2
i2  4  0

Dictionary
-----------
 {'a': [2, 4]}

DataFrame.isin(dict)
-----------
        a      b
i1  True  False
i2  True  False

Индекс i2 не совпадает с индексом в df1. Следовательно, эта строка возвращает все ложные значения.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *