Pandas で特定の列が所定の条件を満たすすべての行のインデックスを取得する方法

  1. 特定の列が特定の条件を満たすすべての行のインデックスを取得する単純なインデックス操作
  2. 特定の列が指定された条件を満たすすべての行のインデックスを取得するための np.where() メソッド
  3. pandas.DataFrame.query() は、特定の列が特定の条件を満たすすべての行のインデックスを取得します

単純なインデックス付け操作を使用して、Pandas で特定の列が特定の条件を満たすすべての行のインデックスを取得できます。また、NumPy パッケージの where() メソッドと DataFrame オブジェクトの query() メソッドを使用してインデックスを見つけることもできます。

特定の列が特定の条件を満たすすべての行のインデックスを取得する単純なインデックス操作

単純なインデックス付け操作を使用すると、特定の列が特定の条件を満たす行のインデックスを取得するタスクを実行できます。

import pandas as pd
import numpy as np

dates=['April-10', 'April-11', 'April-12', 'April-13','April-14','April-16']
sales=[200,300,400,200,300,300]
prices=[3, 1, 2, 4,3,2]

df = pd.DataFrame({'Date':dates ,
                   'Sales':sales ,
                   'Price': prices})

reqd_Index = df[df['Sales']>=300].index.tolist()
print(reqd_Index)

出力:

[1, 2, 4, 5]

ここで、df['Sales']> = 300 は、Sales 列の値が 300 以上の場合に要素が True である一連のブール値を提供します。

df[df['Sales']> = 300].index を使用して、Sales 値が 300 以上の行のインデックスを取得できます。

最後に、tolist() メソッドはすべてのインデックスをリストに変換します。

特定の列が指定された条件を満たすすべての行のインデックスを取得するための np.where() メソッド

np.where() は条件を入力として取り、指定された条件を満たす要素のインデックスを返します。したがって、np.where() を使用して、特定の列が特定の条件を満たすすべての行のインデックスを取得できます。

import pandas as pd
import numpy as np

dates=['April-10', 'April-11', 'April-12', 'April-13','April-14','April-16']
sales=[200,300,400,200,300,300]
prices=[3, 1, 2, 4,3,2]

df = pd.DataFrame({'Date':dates ,
                   'Sales':sales ,
                   'Price': prices})

reqd_Index = list(np.where(df["Sales"] >= 300))
print(reqd_Index)

出力:

[array([1, 2, 4, 5])]

これは、Sales 列の値が300 以上のすべての行のインデックスを出力します。

pandas.DataFrame.query() は、特定の列が特定の条件を満たすすべての行のインデックスを取得します

pandas.DataFrame.query() は、指定されたクエリ式から得られた DataFrame を返します。これで、DataFrame の index 属性を使用して、特定の列が特定の条件を満たすすべての行のインデックスを返すことができます。

import pandas as pd
import numpy as np

dates=['April-10', 'April-11', 'April-12', 'April-13','April-14','April-16']
sales=[200,300,400,200,300,300]
prices=[3, 1, 2, 4,3,2]

df = pd.DataFrame({'Date':dates ,
                   'Sales':sales ,
                   'Price': prices})

reqd_index = df.query('Sales == 300').index.tolist()
print(reqd_index)

出力:

[1, 4, 5]

特定の列が指定された条件 Sales == 300 を満たすすべての行のインデックスのリストを返します。

関連記事 - Pandas DataFrame

  • Pandas Dataframe の列で NaN の発生をカウントする方法
  • Pandas Dataframe を Numpy 配列に変換する方法
  • 関連記事 - Pandas Row Index

  • Pandas のデフォルト値で既存のデータフレームに新しい列を追加する方法
  • Pandas の列値に基づいてデータフレーム行をフィルタリングする方法
  • 関連記事 - Pandas Column

  • Pandas で DataFrame 列を文字列に変換する方法
  • Pandas DataFrame の列ヘッダーをリストとして取得する方法
  • comments powered by Disqus