Pandas DataFrame DataFrame.isin()関数

  1. pandas.DataFrame.isin(values) の構文
  2. コード例: iterable を入力とする DataFrame.isin()
  3. コード例: Dictionary を入力とする DataFrame.isin()
  4. コード例: Series を入力とする DataFrame.isin()
  5. コード例: DataFrame を入力とする DataFrame.isin()

pandas.DataFrame.isin(values) 関数は、呼び出し元の DataFrame の各要素に、入力 values で指定された値が含まれているかどうかを確認します。

pandas.DataFrame.isin(values) の構文

DataFrame.isin(values) 

パラメーター

values iterable - listtupleset など
Dictionary
Series
DataFrame

戻り値

各要素に入力の values が含まれているかどうかを示す、呼び出し元の DataFrame と同じ次元のブール値の DataFrame を返します。

コード例: iterable を入力とする DataFrame.isin()

Python の iterable が入力の場合、Pandas の DataFrame.isin() 関数は、DataFrame の各値に iterable の値が含まれているかどうかを確認します。

import pandas as pd

df = pd.DataFrame({'Sales': [100, 200], 'Profit': [200, 400]})

df = df.isin([200, 400])
print(df)

呼び出し元の DataFrame

   Sales  Profit
0    100     200
1    200     400

出力:

   Sales  Profit
0  False    True
1   True    True

ここでは、リスト [200、400] に 200 と 400 が存在するため、元の値が 200 と 400 である返された DataFrame の値は True です。100 はリスト [200、400] にないため、その位置の値は False を返します。

コード例: Dictionary を入力とする DataFrame.isin()

入力値のタイプが「辞書」の場合、isin() 関数は値だけでなく「キー」もチェックします。列名が key と同じで、セルの値が辞書の value に含まれている場合にのみ True を返します。

import pandas as pd

df = pd.DataFrame({'Sales': [100, 200], 'Profit': [200, 400]})

df = df.isin({'Sales': [200, 400]})
print(df)

出力:

   Sales  Profit
0  False   False
1   True   False

最初の例では、Profit 列の値はどちらも True ですが、この例では列名が入力ディクショナリの key と異なるため、False です。

ディクショナリの value に値が含まれている場合、Sales 列に True を返します- [200、400]

コード例: Series を入力とする DataFrame.isin()

入力値のタイプが Pandas Series の場合、isin() 関数は列ごとの要素が入力 Series の同じインデックスの値と同じかどうかを確認します。

import pandas as pd

df = pd.DataFrame({'Sales': [100, 200], 'Profit': [200, 400]})

valueSeries = pd.Series([200, 400])
print(valueSeries)

df = df.isin(valueSeries)
print(df)

出力:

0    200
1    400
dtype: int64
   Sales  Profit
0  False    True
1  False    True

Profit 列の要素は入力の Series 要素の要素と同じであるため、その列の両方の要素に対して True を返します。

コード例: DataFrame を入力とする DataFrame.isin()

入力値のタイプが Pandas DataFrame の場合、isin() 関数は呼び出し元の DataFrame の各要素が同じ位置にある入力 DataFrame の要素と同じかどうかを確認します。

値が同一の場合は True を返し、不一致の場合は False を返します。

import pandas as pd

df = pd.DataFrame({'Sales': [100, 200], 'Profit': [200, 400]})
print(df)

valueDf = pd.DataFrame({'Sales': [100, 200], 'Profit': [200, 300]})
print(valueDf)

df = df.isin(valueDf)
print(df)

出力:

   Sales  Profit
0    100     200
1    200     400
   Sales  Profit
0    100     200
1    200     300
   Sales  Profit
0   True    True
1   True   False

呼び出し元の DataFrame と入力の DataFrame の間で値が異なるため、位置 (1、1) の値は False を返します。

警告

isin() 関数は値を要素ごとにチェックするだけでなく、列の名前が同一かどうかもチェックします。これらの 2つの DataFrame で値が同じであっても、列名が異なる場合は False を返します。

関連記事 - Pandas DataFrame

  • Pandas DataFrame DataFrame.groupby()関数
  • comments powered by Disqus