Pandas中pd.to_datetime
的用法及示例
pd.to_datetime
是 Pandas 庫中用于將字符串、整數或列表轉換為日期時間(datetime
)對象的核心函數。它在處理時間序列數據時至關重要,能夠靈活解析多種日期格式并統一為標準時間類型。以下是其核心用法及示例:
1. 基本用法
將字符串或列表直接轉換為日期時間格式:
Python復制
import pandas as pd# 示例 1:單個日期字符串轉換
date_str = "2024-03-08"
date = pd.to_datetime(date_str)
print(date) # 輸出:2024-03-08 00:00:00# 示例 2:列表轉換
dates_list = ["2024-01-01", "2024-02-01", "2024-03-01"]
dates = pd.to_datetime(dates_list)
print(dates)
# 輸出:
# DatetimeIndex(['2024-01-01', '2024-02-01', '2024-03-01'], dtype='datetime64[ns]', freq=None)
引用:[[5]][[9]]
2. 處理多格式日期字符串
支持多種日期格式(如 YYYY-MM-DD
、MM/DD/YYYY
、Jan 01, 2024
等)的自動解析:
Python復制
dates = ["2024-03-08", "03/08/2024", "Mar 08, 2024", "2024.03.08"]
converted = pd.to_datetime(dates)
print(converted)
# 輸出:
# DatetimeIndex(['2024-03-08', '2024-03-08', '2024-03-08', '2024-03-08'], dtype='datetime64[ns]', freq=None)
引用:[[2]][[8]]
3. 自定義日期格式
通過 format
參數顯式指定日期格式(提升解析效率):
Python復制
date_str = "08-03-2024" # 格式為 DD-MM-YYYY
date = pd.to_datetime(date_str, format="%d-%m-%Y")
print(date) # 輸出:2024-03-08 00:00:00
引用:[[3]][[5]]
4. 處理無效日期
通過 errors
參數控制無法解析值的處理方式:
-
errors='raise'
:報錯(默認)。 -
errors='coerce'
:轉換為NaT
(Not a Time)。 -
errors='ignore'
:保留原始值。
Python復制
invalid_dates = ["2024-02-30", "2024-13-01", "invalid"]
# 強制轉換為 NaT
converted = pd.to_datetime(invalid_dates, errors='coerce')
print(converted)
# 輸出:[NaT NaT NaT]
引用:[[4]][[9]]
5. 從 DataFrame 列轉換
將數據框中的字符串列轉換為日期時間類型:
Python復制
import pandas as pddata = {"日期": ["2024-01-01", "2024-02-01", "2024-03-01"],"銷售額": [100, 200, 300]
}
df = pd.DataFrame(data)# 轉換為 datetime 類型
df["日期"] = pd.to_datetime(df["日期"])
print(df.dtypes)
# 輸出:
# 日期 datetime64[ns]
# 銷售額 int64
# dtype: object
引用:[[8]][[10]]
6. 提取時間屬性
轉換后可通過 .dt
訪問器提取年、月、日等屬性:
Python復制
df["年份"] = df["日期"].dt.year
df["月份"] = df["日期"].dt.month
df["日"] = df["日期"].dt.day
print(df)
# 輸出:
# 日期 銷售額 年份 月份 日
# 0 2024-01-01 100 2024 1 1
# 1 2024-02-01 200 2024 2 1
# 2 2024-03-01 300 2024 3 1
引用:[[5]][[9]]
7. 應用場景
-
數據清洗:統一日期格式,處理缺失或異常值。
-
時間序列分析:按年/月/日聚合數據。
-
特征工程:提取時間特征(如季度、星期幾)用于機器學習。
8. 注意事項
-
性能優化:處理大規模數據時,顯式指定
format
參數可加速解析 [[3]]。 -
時區處理:通過
utc=True
轉換為 UTC 時間,或使用tz_localize
設置時區 [[8]]。 -
兼容性:支持 NumPy 的
datetime64
類型,可與其他時間序列工具(如 Matplotlib)無縫銜接 [[10]]。
通過 pd.to_datetime
,Pandas 提供了高效且靈活的日期時間處理能力,是數據分析中不可或缺的工具。