パンダで日付を比較する方法: 例付き


次のメソッドを使用して、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 つの日付の差を計算する方法

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です