如何使用 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