この記事では、Pythonのデータ分析ライブラリであるpandasを使用して、複数の条件でデータをフィルタリングする方法について詳しく解説します。具体的なコード例、その解説、さらには応用例を2つも提供しています。
はじめに
データ分析を行う際、特定の条件に基づいてデータセットをフィルタリングするケースは非常に多いです。この記事では、pandasを用いた複数条件のデータフィルタリングに焦点を当て、初心者から中級者までの幅広い読者に対してその方法を伝授します。
pandasとは?
pandasはPythonで利用できるデータ分析ライブラリです。特に、テーブル形式のデータを効率よく扱うことができます。
インストール方法
pandasはpipコマンドで簡単にインストールできます。
pip install pandas
基本的なフィルタリング方法
まずは、一つの条件でデータをフィルタリングする基本的な方法を見てみましょう。
データフレームの作成
例として、以下のようなCSVファイル(`sample.csv`)からデータフレームを作成します。
- name,age,salary
- John,25,50000
- Alice,22,60000
- Bob,30,70000
コード例
このCSVデータを読み込んで、`age`が25以上のレコードをフィルタリングします。
import pandas as pd
# CSVファイルからデータフレームを作成
df = pd.read_csv("sample.csv")
# ageが25以上のデータをフィルタリング
filtered_df = df[df['age'] >= 25]
print(filtered_df)
複数条件でのフィルタリング
複数の条件でデータをフィルタリングする場合には、論理演算子を用いて条件を組み合わせます。
コード例
`age`が25以上、かつ`salary`が60000以上のレコードをフィルタリングします。
# ageが25以上かつsalaryが60000以上のデータをフィルタリング
filtered_df = df[(df['age'] >= 25) & (df['salary'] >= 60000)]
print(filtered_df)
応用例
応用例1: 複数の値にマッチするデータをフィルタリング
`isin()`メソッドを使うことで、特定のカラムが複数の値に一致するデータをフィルタリングできます。
# nameが'John'または'Alice'に一致するデータをフィルタリング
filtered_df = df[df['name'].isin(['John', 'Alice'])]
print(filtered_df)
応用例2: 文字列メソッドを使ったフィルタリング
`str.contains()`メソッドを用いることで、特定の文字列を含むデータをフィルタリングできます。
# nameに'J'を含むデータをフィルタリング
filtered_df = df[df['name'].str.contains('J')]
print(filtered_df)
まとめ
この記事では、Pythonとpandasを用いて複数条件でデータをフィルタリングする方法について詳しく解説しました。基本的な方法から応用例まで、さまざまなケースでのフィルタリング手法を学べる内容となっています。ぜひこの知識を活かして、より高度なデータ分析を行ってください。
コメント