パンダ: 2 つの値の間の行を選択する方法
次の基本構文を使用して、列が 2 つの特定の値の間にあるパンダ データフレーム内の行を選択できます。
df_filtered = df[df[' points ']. between ( 25 , 35 )]
この特定の例では、ポイント列の値が 25 ~ 35であるすべての行を選択します。
代わりに、ポイント列の値が 25 ~ 35の範囲にない行を選択する場合は、列名の前にチルダ ( ~ ) を追加できます。
df_filtered = df[ ~ df[' points ']. between ( 25 , 35 )]
次の例は、各メソッドを実際に使用する方法を示しています。
例: Pandas で 2 つの値の間の行を選択する
さまざまなチームのバスケットボール選手が獲得したポイントに関する情報を含む次のパンダ データフレームがあるとします。
import pandas as pd #createDataFrame df = pd. DataFrame ({' team ': ['Mavs', 'Mavs', 'Nets', 'Nets', 'Heat', 'Heat', 'Kings'], ' points ': [22, 28, 35, 34, 29, 28, 23]}) #view DataFrame print (df) team points 0 Mavs 22 1 Mavs 28 2 Nets 35 3 Nets 34 4 Heat 29 5 Heat 28 6 Kings 23
次の構文を使用すると、ポイント列の値が 25 ~ 35の範囲にある行のみをデータフレームから選択できます。
#select rows where value in points column is between 25 and 35
df_filtered = df[df[' points ']. between ( 25 , 35 )]
#view filtered DataFrame
print (df_filtered)
team points
1 Mavs 28
2 Nets 35
3 Nets 34
4 Heat 29
5 Heat 28
ポイント列の値が 25 ~ 35 の行のみが選択されていることに注意してください。
between()関数には下限と上限の値が含まれることに注意してください。
たとえば、ポイント値が 35 のプレーヤーは、フィルタリングされた DataFrame に含まれていました。
代わりに、ポイント列の値が 25 から 35の間にない行のみを選択したい場合は、列名の前にチルダ ( ~ ) を追加します。
#select rows where value in points column is not between 25 and 35
df_filtered = df[ ~ df[' points ']. between ( 25 , 35 )]
#view filtered DataFrame
print (df_filtered)
team points
0 Mavs 22
6 Kings 23
ポイント列の値が 25 ~ 35 の間にない行のみが選択されていることに注意してください。
注: pandas between()関数の完全なドキュメントはここで見つけることができます。
追加リソース
次のチュートリアルでは、パンダで他の一般的なタスクを実行する方法を説明します。
パンダ: 2 つの列が等しい行を選択します
パンダ: ブール値系列を使用して DataFrame から行を選択します
パンダ: NaN 値を含む行を選択する