Pandas DataFrameにおける日付フィルタリングの基本
Pandas DataFrameでは、日付フィルタリングを行うためのいくつかの方法があります。まずは基本的な方法から見ていきましょう。
日付データの準備
まず、日付データを含むDataFrameを作成します。以下のコードは、2024年1月1日から2024年12月31日までの日付を持つDataFrameを作成します。
import pandas as pd
# 日付範囲の作成
date_range = pd.date_range(start='2024-01-01', end='2024-12-31')
# DataFrameの作成
df = pd.DataFrame(date_range, columns=['date'])
日付フィルタリングの基本
日付フィルタリングは、特定の条件を満たす日付を持つ行を選択するための操作です。以下のコードは、2024年6月1日から2024年6月30日までの日付を持つ行を選択します。
# 日付フィルタリング
filtered_df = df[(df['date'] >= '2024-06-01') & (df['date'] <= '2024-06-30')]
このように、Pandas DataFrameでは日付フィルタリングを行うための基本的な操作を理解することが重要です。次のセクションでは、より高度な日付フィルタリングのテクニックについて見ていきましょう。
DataFrame.loc[]を使った日付フィルタリング
PandasのDataFrame.loc[]
は、ラベルに基づいてデータを選択するためのメソッドです。これを使って日付フィルタリングを行うことも可能です。
loc[]を使った日付フィルタリング
以下のコードは、DataFrame.loc[]
を使って2024年6月1日から2024年6月30日までの日付を持つ行を選択します。
# DataFrame.loc[]を使った日付フィルタリング
filtered_df = df.loc[(df['date'] >= '2024-06-01') & (df['date'] <= '2024-06-30')]
このように、DataFrame.loc[]
を使うことで、日付フィルタリングを行うことができます。次のセクションでは、さらに高度な日付フィルタリングのテクニックについて見ていきましょう。
DataFrame.query()を使った日付フィルタリング
PandasのDataFrame.query()
は、文字列形式の式を使用してデータを選択するためのメソッドです。これを使って日付フィルタリングを行うことも可能です。
query()を使った日付フィルタリング
以下のコードは、DataFrame.query()
を使って2024年6月1日から2024年6月30日までの日付を持つ行を選択します。
# DataFrame.query()を使った日付フィルタリング
filtered_df = df.query("'2024-06-01' <= date <= '2024-06-30'")
このように、DataFrame.query()
を使うことで、日付フィルタリングを行うことができます。次のセクションでは、さらに高度な日付フィルタリングのテクニックについて見ていきましょう。
pandas.Series.dt.strftime()を使った日付フィルタリング
PandasのSeries.dt.strftime()
は、日付データを特定の形式の文字列に変換するためのメソッドです。これを使って日付フィルタリングを行うことも可能です。
strftime()を使った日付フィルタリング
以下のコードは、Series.dt.strftime()
を使って2024年6月の日付を持つ行を選択します。
# Series.dt.strftime()を使った日付フィルタリング
filtered_df = df[df['date'].dt.strftime('%Y-%m') == '2024-06']
このように、pandas.Series.dt.strftime()
を使うことで、特定の形式の日付に基づいてフィルタリングを行うことができます。これは、特定の年や月、曜日などに基づいてデータを選択する際に非常に便利です。
以上、Pandasを使った日付フィルタリングのテクニックについて見てきました。これらのテクニックを活用することで、日付データを含むDataFrameの操作がより柔軟に、そして効率的に行えるようになります。データ分析における日付データの扱いは重要なスキルの一つですので、ぜひマスターしてください。