如何在Pandas中將日期時間轉換為日期?


在資料分析和處理中,處理日期和時間是一個常見需求。Python中的Pandas庫提供了強大的工具來處理日期時間值。在本文中,我們將探討在Pandas DataFrame中將日期時間值轉換為僅日期格式的過程。

處理日期時間值時,通常需要提取特定元件,例如年份、月份、日期或時間,以便進一步分析或視覺化。但是,在某些情況下,我們可能只對日期時間物件的日期部分感興趣,不包括時間資訊。

將日期時間值轉換為僅日期格式在各種情況下都很有用。例如,當按日期彙總資料時,刪除時間元件可以簡化分析,並使我們能夠專注於日期維度。此外,當基於日期合併或連線資料集時,將日期時間值轉換為日期可以幫助更有效地對齊資料。

在本文中,我們將探討在Pandas DataFrame中將日期時間值轉換為日期格式的不同方法。我們將演示使用Pandas內建函式的直接方法以及用於更具體需求的自定義函式。

現在讓我們討論我們可以使用哪些不同的方法在pandas中將日期時間轉換為日期。

使用dt訪問器

Pandas提供了一個方便的dt訪問器,它允許我們訪問日期時間值的各種元件。要使用這種方法將日期時間值轉換為日期格式,我們可以使用dt訪問器的date屬性。

讓我們看看它是如何工作的

示例

import pandas as pd

# Create a sample DataFrame with datetime values
data = {'datetime': ['2022-01-01 10:30:00', '2022-02-15 14:45:00', '2022-03-20 18:00:00']}
df = pd.DataFrame(data)

# Convert 'datetime' column to datetime type
df['datetime'] = pd.to_datetime(df['datetime'])

# Extract date using the 'dt' accessor
df['date'] = df['datetime'].dt.date

# Display the DataFrame
print(df)

解釋

  • 首先,我們匯入所需的Pandas庫。

  • 接下來,我們建立一個示例DataFrame,其中'datetime'列包含日期時間值。

  • 要執行日期時間操作,我們需要使用pd.to_datetime()函式將'datetime'列轉換為datetime型別。

  • 使用dt訪問器,我們訪問'datetime'列並使用date屬性僅提取日期元件。

  • 我們將提取的日期值賦值給一個名為'date'的新列。

  • 最後,我們列印DataFrame以檢視結果。

輸出

             datetime        date
0 2022-01-01 10:30:00  2022-01-01
1 2022-02-15 14:45:00  2022-02-15
2 2022-03-20 18:00:00   2022-03-20

使用apply()函式

將日期時間值轉換為日期格式的另一種方法包括使用apply()函式以及lambda函式。當我們有特定的格式要求時,這種方法提供了靈活性。

以下是我們如何實現此目標的方法

示例

import pandas as pd

# Create a sample DataFrame with datetime values
data = {'datetime': ['2022-01-01 10:30:00', '2022-02-15 14:45:00', '2022-03-20 18:00:00']}
df = pd.DataFrame(data)

# Convert 'datetime' column to datetime type
df['datetime'] = pd.to_datetime(df['datetime'])

# Define a custom function to extract date
def extract_date(dt):
    return dt.date()

# Apply the custom function to the 'datetime' column
df['date'] = df['datetime'].apply(extract_date)

# Display the DataFrame
print(df)

解釋

  • 我們匯入必要的Pandas庫。

  • 接下來,我們建立一個包含日期時間值的示例DataFrame。

  • 與前面的方法類似,我們使用pd.to_datetime()將'datetime'列轉換為datetime型別。

  • 我們定義一個自定義函式extract_date(),它接受一個日期時間值作為輸入,並使用date()函式僅返回日期元件。

  • 使用apply()函式,我們將extract_date()函式應用於'datetime'列的每個元素,並將結果賦值給一個名為'date'的新列。

  • 最後,我們列印DataFrame以觀察結果。

輸出

             datetime        date
0 2022-01-01 10:30:00  2022-01-01
1 2022-02-15 14:45:00  2022-02-15
2 2022-03-20 18:00:00   2022-03-20

結論

總之,在處理時間序列資料或分析時間資訊時,在Pandas中將日期時間轉換為日期是一項常見任務。在本文中,我們探討了完成此任務的兩種不同方法。

第一種方法涉及使用Pandas中的dt訪問器,它提供了訪問和操作日期時間元件的便捷方法。

第二種方法涉及使用Pandas中的to_datetime函式將datetime列轉換為datetime資料型別,然後使用dt訪問器提取日期元件。

透過本文獲得的見解,您可以自信地處理Pandas中的日期時間到日期的轉換,並簡化您的資料分析工作流程。

更新於:2023年8月3日

3K+ 次瀏覽

啟動您的職業生涯

完成課程獲得認證

開始學習
廣告