Pandas を使用して列値で DataFrame をフィルタリングする
Python でデータを操作する場合、Pandas ライブラリはデータの操作と分析のための強力なツールを提供します。一般的なタスクの 1 つは、特定の列の値に基づいて DataFrame から行を選択することです。この操作は、SQL クエリ SELECT * FROM table WHERE column_name = some_value に似ています。
この記事では、さまざまな方法を使用して Pandas でこれを実現する方法を検討します。単一の値でフィルタリングする場合でも、複数の基準でフィルタリングする場合でも、Pandas はそのような操作を処理する直感的かつ効率的な方法を提供します。詳細を見ていきましょう。
指示 | 説明 |
---|---|
pd.DataFrame() | 辞書または他のデータ構造から DataFrame オブジェクトを作成します。 |
df[condition] | 条件に基づいて DataFrame 行をフィルターし、基準を満たす行のみを返します。 |
print() | 指定されたメッセージまたはデータフレームをコンソールに出力します。 |
df['column'] == value | 列が指定された値と一致する行をフィルタリングするために使用されるブール型 Series を作成します。 |
df['column'] >df['column'] > value | 列の値が指定された値より大きい行をフィルタリングするために使用されるブール型 Series を作成します。 |
# Comment | スクリプトの一部として実行されない、コード内に説明やメモを追加するために使用されます。 |
Pandas での DataFrame 行選択の実装
提供されているスクリプトの主なタスクは、データ分析における一般的な要件である、特定の列値に基づいて DataFrame から行をフィルター処理することです。最初のスクリプトは、次のように Pandas ライブラリをインポートすることから始まります。 。 Pandas は Python の強力なデータ操作ライブラリであるため、これは不可欠です。次に、次を使用してサンプル DataFrame を作成します。 名前、年齢、都市のデータを含む辞書付き。この構造により、表形式のデータを簡単に視覚化し、操作できるようになります。スクリプトの重要な部分は、次を使用して行をフィルタリングする場所です。 。このコマンドは、都市列の値が「ニューヨーク」であるすべての行を選択します。結果は変数に格納されます ny_rowsこれを印刷して、フィルタリングされた DataFrame を表示します。
2 番目のスクリプトは同様の構造に従いますが、数値条件に基づいて行をフィルタリングすることに重点を置いています。 Pandas をインポートし、製品、価格、数量の列を含むデータフレームを作成した後、スクリプトは次を使用します。 価格が 150 を超える行をフィルタリングします。このコマンドは、指定された条件を満たす行のみを含む元のデータフレームのサブセットを生成します。結果は次の場所に保存されます そして確認のために印刷しました。どちらのスクリプトも、データ操作における Pandas の強力さとシンプルさを示しています。一連の true/false 値を渡してデータをフィルター処理する方法であるブール インデックスを使用すると、さまざまな条件に基づいてデータのサブセットを効率的に選択できるため、データ アナリストや科学者にとって非常に貴重なツールになります。
列値に基づいた DataFrame 内の行のフィルタリング
Python - DataFrame 操作に Panda を使用する
import pandas as pd
# Create a sample DataFrame
data = {
'name': ['Alice', 'Bob', 'Charlie', 'David', 'Edward'],
'age': [24, 27, 22, 32, 29],
'city': ['New York', 'Los Angeles', 'New York', 'Chicago', 'Los Angeles']
}
df = pd.DataFrame(data)
# Select rows where city is New York
ny_rows = df[df['city'] == 'New York']
print(ny_rows)
# Output:
# name age city
# 0 Alice 24 New York
# 2 Charlie 22 New York
列値に基づいた DataFrame 行のクエリ
Python - Pandas を使用した高度なフィルタリング
import pandas as pd
# Create a sample DataFrame
data = {
'product': ['A', 'B', 'C', 'D'],
'price': [100, 150, 200, 250],
'quantity': [30, 50, 20, 40]
}
df = pd.DataFrame(data)
# Select rows where price is greater than 150
expensive_products = df[df['price'] > 150]
print(expensive_products)
# Output:
# product price quantity
# 2 C 200 20
# 3 D 250 40
DataFrame 行を選択するための高度なテクニック
ブール インデックスによる基本的なフィルタリングに加えて、Pandas は列の値に基づいて行を選択するためのより高度なテクニックを提供します。そのような方法の 1 つが、 この関数を使用すると、SQL に似た構文を使用して DataFrame 行をフィルタリングできます。たとえば、次のように使用できます をクリックして、年齢が 25 歳を超え、都市がニューヨークである行を選択します。この方法により、特に複雑な条件の場合にコードが読みやすくなります。さらに、Pandas は以下を提供します。 そして iloc[] より正確な行選択のためのアクセサー。の アクセサはラベルベースです。つまり、ラベルまたはブール配列によって行をフィルタリングできます。対照的に、 アクセサは整数位置ベースであるため、インデックス位置によって行をフィルタリングできます。
Pandas のもう 1 つの強力な機能は、 方法。このメソッドは、値のリストに基づいて行をフィルタリングする必要がある場合に便利です。例えば、 都市列の値がニューヨークまたはロサンゼルスである行を選択します。さらに、 そして | 演算子を使用して、より複雑なフィルターを作成します。例えば、 年齢が 25 歳以上で都市がニューヨークである行をフィルターします。これらの高度な技術は、データ フィルタリングのための堅牢なフレームワークを提供し、Pandas をデータ分析と操作のための多用途ツールにします。
- 複数の列の値に基づいて DataFrame 内の行をフィルターするにはどうすればよいですか?
- 次のようにして、複数の条件を組み合わせてブール型インデックスを使用できます。 そして 。例えば: 。
- 違いは何ですか そして ?
- はラベルベースですが、 整数の位置ベースです。使用 ラベルによるフィルタリング用と iloc[] インデックス位置によるフィルタリング用。
- どうすれば使えますか DataFrame行をフィルタリングする関数?
- の 関数を使用すると、SQL のような構文を使用できます。例えば: 。
- 値のリストに基づいて行をフィルターできますか?
- はい、使用できます 方法。例えば: 。
- 文字列の一致に基づいて行をフィルタリングする最良の方法は何ですか?
- 使用できます 方法。例えば: 。
- 列値が欠落している行を選択するにはどうすればよいですか?
- 使用できます 方法。例えば: 。
- カスタム関数を使用して行をフィルターするにはどうすればよいですか?
- 使用できます ラムダ関数を使用したメソッド。例えば: 。
- インデックス値に基づいて行をフィルタリングできますか?
- はい、使用できます 方法。例えば: 。
列の値に基づいて DataFrame から行を選択することは、Pandas を使用したデータ分析の基本的なスキルです。ブール型インデックスを使用すると、 、 、 、 そして isin() メソッドを使用すると、効率的なデータ フィルタリングが可能になります。これらのテクニックをマスターすると、データセットを効果的に操作および分析する能力が向上します。