2024-09-01|閱讀時間 ‧ 約 22 分鐘

[Python][Pandas]將日期欄位改為 DataFrame 的索引

包含著日期型資料在許多不同領域的分析中都非常重要,特別是當數據涉及隨時間變化的趨勢、模式或週期時,例如房價,股票價格分析等等。

如何將一個日期欄位改為 DataFrame 的索引,你可以使用 set_index() 方法。

實作範例數據來源



處理步驟

  1. 確保日期欄位是 datetime 格式。如果日期欄位還不是 datetime 格式,先使用 pd.to_datetime() 進行轉換。
  2. 使用 set_index() 將日期欄位設置為索引。

程式範例

假設你有一個 DataFrame,其中包含一個名為 Date 的欄位包含日期的資訊

import pandas as pd

# 模擬數據
data = {
'Date': ['2024-01-01', '2024-01-02', '2024-01-03', '2024-01-04'],
'Value': [100, 200, 150, 300]
}

df = pd.DataFrame(data)

# 確保 'Date' 欄位為 datetime 格式
df['Date'] = pd.to_datetime(df['Date'])

# 將 'Date' 欄位設置為索引
df.set_index('Date', inplace=True)

print(df)

輸出


說明

  • pd.to_datetime() 用來將日期欄位轉換為 datetime 格式。
  • set_index('Date', inplace=True)Date 欄位設置為索引,並且 inplace=True 使得這一操作直接應用於原 DataFrame,而不返回新的 DataFrame。

這樣,你就成功地將日期欄位改為了索引,可以更方便地進行基於日期的操作和分析。


實作範例

讀取數據並查看數據結構

import pandas as pd

df = pd.read_csv('F:/python/crab/pandas/test.csv')
df.head()

原先資料的索引是數字,我們依照YrSold的日期來當作索引

# 確保 'Date' 欄位為 datetime 格式
df['YrSold'] = pd.to_datetime(df['YrSold'])

# 將 'Date' 欄位設置為索引
df.set_index('YrSold', inplace=True)
df.head()

在 Pandas 中,除了 datetime 格式外,還有許多其他格式可以用作索引。

以下是一些常見的格式:

1. 整數(Integer)

  • 用途:常用於數據集中,作為唯一標識的 ID 或順序標記。
  • 範例
    df = pd.DataFrame({'Value': [10, 20, 30, 40]})
    df.index = [1, 2, 3, 4] # 設定整數索引

2. 浮點數(Float)

  • 用途:可用於數值型數據的索引,特別是當數據有小數時。
  • 範例
    df = pd.DataFrame({'Value': [10, 20, 30, 40]})
    df.index = [1.1, 2.2, 3.3, 4.4] # 設定浮點數索引

3. 字串(String)

  • 用途:字串索引用於具有唯一標識符的資料,如名稱、代碼、標籤等。
  • 範例
    df = pd.DataFrame({'Value': [10, 20, 30, 40]})
    df.index = ['A', 'B', 'C', 'D'] # 設定字串索引

4. 類別(Categorical)

  • 用途:當有固定數量的唯一值(類別)時,可用於提高效能,減少內存使用。
  • 範例
    df = pd.DataFrame({'Value': [10, 20, 30, 40]})
    df.index = pd.Categorical(['Low', 'Medium', 'High', 'Low']) # 設定類別索引


分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.