如何比较 pandas 中的日期:示例


您可以使用以下方法来比较 pandas DataFrame 中两列之间的日期:

方法 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 添加一个新列以显示日期比较

以下代码演示如何添加名为met_due_date的新列,该列根据comp_date列中的日期是否早于due_date列中的日期返回 True 或 False。

 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 的截止日期为 04/15/2022,完成日期为 04/14/2022。

由于完成日期早于截止日期,因此met_due_date列的值为 True。

示例 2:根据日期比较过滤 DataFrame

以下代码显示如何过滤 DataFrame 以仅包含comp_date列中的日期早于due_date列中的日期的行。

 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

新的 DataFrame 已被过滤为仅包含comp_date列中的日期早于due_date列中的日期的行。

其他资源

以下教程解释了如何在 pandas 中执行其他常见操作:

如何在 Pandas 中创建日期范围
如何在 Pandas 中将时间戳转换为日期/时间
如何计算pandas中两个日期之间的差异

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注