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