如何使用 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+ 次檢視

啟動您的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.