如何使用 Python 中的 Pandas 检查某天是工作日还是周末?


Python 的 **pandas** 库提供了不同的函数来检查某天是工作日还是周末,例如 weekday()、day_name()、isoweekday() 等。

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

使用 weekday() 函数

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

示例

在以下示例中,我们将对由 pandas DataFrame 创建的日期应用 **weekday()** 函数。结果输出将指示给定日期是工作日还是周末。

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()** 函数也可以用来检查给定日期是工作日还是周末。此函数以字符串形式返回日期,例如工作日或周末。

示例

在此示例中,我们将对使用 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

更新于: 2023年8月9日

3K+ 次查看

启动您的 职业生涯

通过完成课程获得认证

开始学习
广告