在 Pandas 中獲取日期中的日


Pandas 是一個流行的 Python 庫,用於資料分析和處理。在使用 Python Pandas 進行資料分析和處理時,處理日期和時間是一項常見任務。從給定日期獲取日是許多開發者可能遇到的現實任務。Pandas 提供的許多函式和方法使這項任務更容易。知道如何從日期獲取日,在許多情況下都非常有用。在本文中,我們將探討在 Pandas 中確定星期幾的幾種方法。閱讀完本文後,您應該能夠在專案中很好地理解如何使用 Pandas 從日期中提取星期幾。

下面提到了可以用來完成此任務的方法

方法

  • 使用 dt.dayofweek

  • 使用 pd.to_datetime() 和 dt.day_name()

  • 對多個日期字串使用 pd.to_datetime() 和 dt.day_name()

  • 對多個日期字串使用 pd.dayofweek 和 dt.strftime()

現在讓我們討論每種方法以及如何在 Pandas 中使用它們從日期中獲取日。

方法 1:使用 dt.dayofweek

我們可以使用 **dt.dayofweek** 屬性將給定日期轉換為其特定的星期幾,然後透過手動對映將其轉換為字串形式。

演算法

  • 匯入必要的庫

  • 使用 pd.date_range() 函式建立一個日期範圍物件,提供其起始日期和結束日期。

  • 使用日期範圍物件建立一個 DataFrame。

  • 向 DataFrame 新增一個新列來儲存星期幾。

  • 使用 dt.dayofweek 屬性從 DataFrame 中儲存的每個日期獲取星期幾。

  • 使用 map() 方法和一個字典將星期幾的數字對映到其名稱。

  • 列印生成的 DataFrame。

步驟 1 - 建立日期範圍

dates = pd.date_range(start='2022-01-01', end='2022-01-07')

步驟 2 - 使用日期範圍建立 DataFrame

df = pd.DataFrame({'date': dates})

步驟 3 - 新增包含星期幾的列

df['day_of_week'] = df['date'].dt.dayofweek

步驟 4 - 將星期幾的數字對映到其名稱

df['day_of_week'] = df['day_of_week'].map({
    0: 'Monday',
    1: 'Tuesday',
    2: 'Wednesday',
    3: 'Thursday',
    4: 'Friday',
    5: 'Saturday',
    6: 'Sunday'
})

步驟 5 - 列印輸出

print(df.head())

示例

import pandas as pd

# create a date range
dates = pd.date_range(start='2022-01-01', end='2022-01-07')

# create a DataFrame with the dates
df = pd.DataFrame({'date': dates})

# add a column with the day of the week
df['day_of_week'] = df['date'].dt.dayofweek

# map the day of the week number to its name
df['day_of_week'] = df['day_of_week'].map({
    0: 'Monday',
    1: 'Tuesday',
    2: 'Wednesday',
    3: 'Thursday',
    4: 'Friday',
    5: 'Saturday',
    6: 'Sunday'
})

# print the output
print(df.head())

輸出

   date      day_of_week
0 2022-01-01    Saturday
1 2022-01-02      Sunday
2 2022-01-03      Monday
3 2022-01-04     Tuesday
4 2022-01-05   Wednesday

方法 2:使用 pd.to_datetime() 和 dt.day_name()

我們可以使用 dt.datetime() 首先將 DataFrame 日期轉換為 datetime 物件,然後從該 datetime 物件獲取星期幾。

演算法

  • 匯入 pandas 庫

  • 建立一個包含日期字串的 DataFrame

  • 使用 pd.to_datetime() 函式將日期字串轉換為相應的 datetime 物件

  • 向 DataFrame 新增一個新列來儲存星期幾。

  • 使用 dt.day_name() 屬性從 datetime 物件獲取相應的星期幾名稱

  • 列印生成的 DataFrame 以獲取輸出。

示例

# Import the pandas library
import pandas as pd

# Create a DataFrame with a single date string
date_obj = pd.DataFrame({'Date': ['2023-04-10']})

# Convert the date string to a datetime object using the to_datetime() function
date_obj['Date'] = pd.to_datetime(date_obj['Date'])

# Add a new column to the DataFrame to store the day of the week
date_obj['Day'] = date_obj['Date'].dt.day_name()

# Print the resulting DataFrame
print(date_obj)

輸出

        Date     Day
0 2023-04-10  Monday

方法 3:對多個日期字串使用 pd.to_datetime() 和 dt.day_name()

我們可以使用 dt.datetime() 首先將 DataFrame 日期轉換為 datetime 物件,然後從該 datetime 物件獲取星期幾。

演算法

  • 匯入 pandas 庫

  • 建立一個 DataFrame,其中包含多個日期字串作為輸入日期。

  • 使用 pd.to_datetime() 函式將日期字串轉換為相應的 datetime 物件

  • 向 DataFrame 新增一個新列來儲存星期幾。

  • 使用 dt.day_name() 屬性從 DataFrame 中的每個 datetime 物件提取星期幾的名稱。

  • 列印生成的 DataFrame 以獲取輸出。

示例

# Import the pandas library
import pandas as pd

# Create a DataFrame with multiple date strings
dates = pd.DataFrame({'Date':['2019-03-07', '2020-03-07',
   '2021-03-07', '2022-03-07',
   '2023-03-07']})

# Convert the date strings to datetime objects using the pd.to_datetime() function
dates['Date'] = pd.to_datetime(dates['Date'])

# Add a new column to the DataFrame to store the day of the week
dates['Day'] = dates['Date'].dt.day_name()

# Print the resulting DataFrame 
print(dates)

輸出

        Date       Day
0 2019-03-07  Thursday
1 2020-03-07  Saturday
2 2021-03-07    Sunday
3 2022-03-07    Monday
4 2023-03-07   Tuesday

方法 4:對多個日期字串使用 pd.dayofweek 和 dt.strftime()

在這種方法中,我們使用 dayofweek 屬性獲取日期字串的日期數字,然後使用 strftime() 函式將星期幾的名稱轉換為字串並縮寫。

  • 匯入 pandas 庫

  • 建立一個包含單個日期字串的 DataFrame

  • 將日期字串轉換為 datetime 物件

  • 向 DataFrame 新增一個新列來儲存星期幾的數值。

  • 向 DataFrame 新增一個新列來儲存星期幾的縮寫名稱。

  • 列印生成的 DataFrame

示例

import pandas as pd

# Create a DataFrame with a single date string
date_obj = pd.DataFrame({'Date':['2023-04-10']})

# Convert the date string to a datetime object
date_obj['Date'] = pd.to_datetime(date_obj['Date'])

# Add a new column to the DataFrame to store the day of the week as a number
date_obj['DayNumber'] = date_obj['Date'].dt.dayofweek

# Add a new column to the DataFrame to store the abbreviated name of the day of the week
date_obj['DayOfWeek'] = date_obj['Date'].dt.strftime('%a')

# Print the resulting Dataframe
print(date_obj)

輸出

        Date  DayNumber DayOfWeek
0 2023-04-10          0       Mon

結論

透過使用這些方法,我們還可以輕鬆地向 DataFrame 新增新列,以儲存星期幾以及該 DataFrame 中更多與日期相關的資訊。

每種方法都有其自身的優點和缺點,這取決於所使用的方法或函式。您可以根據所需表示式的複雜性和編寫程式碼的個人喜好來選擇所需的方法。

更新於:2023年5月29日

9000+ 次瀏覽

啟動您的 職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.