パンダで日付を比較する方法: 例付き
次のメソッドを使用して、pandas DataFrame の 2 つの列間の日付を比較できます。
方法 1: 日付比較を表示する新しい列を DataFrame に追加します。
df[' met_due_date '] = df[' comp_date '] < df[' due_date ']
この特定の例では、 met_due_dateという新しい列を追加します。この列は、 comp_date列の日付がdue_date列の日付より前かどうかに応じて True または False を返します。
方法 2: 日付比較に基づいて DataFrame をフィルターする
df_met_due_date = df[df[' comp_date '] < df[' due_date ']]
この特定の例では、DataFrame をフィルター処理して、 comp_date列の日付がdue_date列の日付より前の行のみを保持します。
次の例は、次の pandas DataFrame でこれらの各メソッドを実際に使用する方法を示しています。
import pandas as pd #createDataFrame df = pd. DataFrame ({' task ': ['A', 'B', 'C', 'D'], ' due_date ': ['4-15-2022', '5-19-2022', '6-14-2022', '10-24-2022'], ' comp_date ': ['4-14-2022', '5-23-2022', '6-24-2022', '10-7-2022']}) #convert due_date and comp_date columns to datetime format df[[' due_date ', ' comp_date ']] = df[[' due_date ', ' comp_date ']]. apply (pd. to_datetime ) #view DataFrame print (df) task due_date comp_date 0 A 2022-04-15 2022-04-14 1 B 2022-05-19 2022-05-23 2 C 2022-06-14 2022-06-24 3 D 2022-10-24 2022-10-07
例 1: 日付比較を表示する新しい列を DataFrame に追加します。
次のコードは、 comp_date列の日付がdue_date列の日付より前であるかどうかに応じて True または False を返すmet_due_dateという新しい列を追加する方法を示しています。
import pandas as pd #create new column that shows if completion date is before due date df[' met_due_date '] = df[' comp_date '] < df[' due_date '] #view updated DataFrame print (df) task due_date comp_date met_due_date 0 A 2022-04-15 2022-04-14 True 1 B 2022-05-19 2022-05-23 False 2 C 2022-06-14 2022-06-24 False 3 D 2022-10-24 2022-10-07 True
DataFrame の各行について、新しいmet_due_date列は、 comp_date列の日付がdue_date列の日付より前であるかどうかを示します。
たとえば、タスク A の期限は 2022 年 4 月 15 日、完了日は 2022 年 4 月 14 日であることがわかります。
完了日が期限前であるため、 met_due_date列の値は True になります。
例 2: 日付比較に基づいて DataFrame をフィルタリングする
次のコードは、 comp_date列の日付がdue_date列の日付より前の行のみを含むように DataFrame をフィルターする方法を示しています。
import pandas as pd #filter for rows where completion date is before due date df_met_due_date = df[df[' comp_date '] < df[' due_date ']] #view results print (df_met_due_date) task due_date comp_date 0 A 2022-04-15 2022-04-14 3 D 2022-10-24 2022-10-07
新しいデータフレームは、 comp_date列の日付がdue_date列の日付より前の行のみを含むようにフィルター処理されています。
追加リソース
次のチュートリアルでは、パンダで他の一般的な操作を実行する方法を説明します。
Pandas で日付範囲を作成する方法
Pandasでタイムスタンプを日付/時刻に変換する方法
パンダで 2 つの日付の差を計算する方法