Python 如何使用Pandas检查日期是否是工作日

Python 如何使用Pandas检查日期是否是工作日

Python的Pandas库提供了不同的函数来检查日期是否为工作日,其中包括weekday()、day_name()、isoweekday()等。

Pandas是一个开源的Python库,用于数据处理、数据分析、数据可视化和数据结构等。这个库在数据科学和数据分析中被广泛应用,提供数据清洗、探索和转换。Pandas中有许多模块和函数可用于处理给定的数据。

使用weekday()函数

在Python中,可以使用weekday()函数来确定一个给定的日期是否为工作日。该函数返回一周中的某一天,以整数形式表示,其中0表示星期一,1表示星期二,以此类推。

示例

在下面的示例中,我们将应用weekday()函数到由Pandas数据框创建的日期上。输出的结果将指示给定的日期是否为工作日。

import pandas as pd
date = pd.to_datetime('2023-03-25')
print(date.weekday())
if date.weekday() < 5:
    print(date,"is Weekday")
else:
    print(date,"is Weekend")

输出

以下是 weekday() 函数的输出结果。

5
2023-03-25 00:00:00 is Weekend

示例

让我们来看一个例子以了解Python库中的weekday()函数。

def week_day(date):
   import pandas as pd
   dte = pd.to_datetime(date)
   print(dte.weekday())
   if dte.weekday() < 5:
      print(dte,"is Weekday")
   else:
      print(dte,"is Weekend")
week_day('23-03-2023')

输出

以下是当我们运行上述代码时 weekday() 函数的输出结果–

3
2023-03-23 00:00:00 is Weekday

使用day_name()函数

day_name()函数也可以用来检查给定的日期是工作日还是周末。该函数返回字符串形式的日期,如weekday或weekend。

示例

在这个示例中,我们将在使用pandas库的to_datetime()函数创建的日期上应用day_name()函数。

import pandas as pd
date = pd.to_datetime('2023-03-25')
print(date.day_name())
if date.day_name() in ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']:
    print(date,"is Weekday")
else:
    print(date,"is Weekend")

输出

下面是day_name()函数的输出结果,用于找到工作日或周末。

Saturday
2023-03-25 00:00:00 is Weekend

示例

这是day_name()函数的又一个示例,用于判断给定日期是工作日还是周末。

def week_date(date):
    import pandas as pd
    dte = pd.to_datetime(date)
    print(dte.day_name())
    if dte.day_name() in ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']:
        print(dte,"is Weekday")
    else:
        print(dte,"is Weekend")
week_date('14-05-2023')

输出

当我们运行上面的代码时,将生成以下输出结果-

Sunday
2023-05-14 00:00:00 is Weekend

使用 isoweekday() 函数

另一种检查指定日期是工作日还是周末的方法是使用 Python 的 isoweekday() 函数。这个函数将返回星期几的整数,其中星期一为 1,星期二为 2,星期三为 3,星期四为 4,星期五为 5,星期六为 6,星期日为 7。

import pandas as pd
dte = pd.to_datetime('2023-03-25')
print(dte.isoweekday())
if dte.isoweekday() < 6:
    print(dte,"is Weekday")
else:
    print(dte,"is Weekend")

输出

以下是isoweekday()函数的输出,用于检查给定的日期是工作日还是周末。

6
2023-03-25 00:00:00 is Weekend

示例

让我们看另一个例子来理解day_name()的工作原理,它检查给定的日期是工作日还是周末。以下是代码。

def wee_day(date):
    import pandas as pd
    dte = pd.to_datetime(date)
    print(dte.isoweekday())
    if dte.isoweekday() < 6:
        print(dte,"is Weekday")
    else:
        print(dte,"is Weekend")
wee_day('2022-11-21')

输出

下面是使用 day_name() 函数检查给定日期是周末还是工作日的输出结果。

1
2022-11-21 00:00:00 is Weekday

示例

以下是另一个例子 –

a = 300
b = 20
c = 30
d = 340
dic = {"a" : 10,"b" : 20,"c" : 40,"d" : 230}
if any([dic[key] == value for key, value in locals().items() if key in dic]):
    print("At least one variable is equal to their respective value")
else:
     print("All the variables are not equal to their respective values")

输出

以下是使用列表推导和 locals() 函数在字典中的变量和值的输出。

At least one variable is equal to their respective value

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程