Pandas で特定の列が所定の条件を満たすすべての行のインデックスを取得する方法
- 特定の列が特定の条件を満たすすべての行のインデックスを取得する単純なインデックス操作
-
特定の列が指定された条件を満たすすべての行のインデックスを取得するための
np.where()
メソッド -
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
を満たすすべての行のインデックスのリストを返します。
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn関連記事 - Pandas DataFrame
- Pandas DataFrame の列ヘッダーをリストとして取得する方法
- Pandas DataFrame 列を削除する方法
- Pandas で DataFrame 列を日時に変換する方法
- Pandas DataFrame で浮動小数点数 float を整数 int に変換する方法
- Pandas DataFrame を 1つの列の値で並べ替える方法
- Pandas group-by と Sum の集計を取得する方法
関連記事 - Pandas DataFrame Row
- Pandas DataFrame の行数を取得する方法
- Pandas で DataFrame 行をランダムにシャッフルする方法
- Pandas の列値に基づいて DataFrame 行をフィルタリングする方法
- Pandas の DataFrame の行を反復する方法
- Pandas を使用して DataFrame 内の重複行を検索する