解析日期,按时间维度聚合,分析趋势与波动
使用 sales_data 数据集,包含销售日期、销售额等产品销售时间信息。
在处理时间序列数据时,首先需要将日期字符串转换为 Pandas 的日期时间格式。
将字符串、整数或浮点数转换为日期时间格式。
import pandas as pd
df = pd.read_csv('sales_data.csv')
df['sale_date'] = pd.to_datetime(df['sale_date'])
print(df.dtypes)
使用 .dt 访问器可以从日期列中提取各种时间组件。
.dt.year - 提取年份.dt.month - 提取月份(1-12).dt.day - 提取日期(1-31).dt.dayofweek - 提取星期几(0=周一,6=周日).dt.quarter - 提取季度(1-4)df['year'] = df['sale_date'].dt.year df['month'] = df['sale_date'].dt.month df['day'] = df['sale_date'].dt.day print(df[['sale_date', 'year', 'month', 'day']].head())
时间序列分析的核心是按不同时间维度聚合数据。
计算每个月的总销售额或平均销售额。
df['total'] = df['quantity'] * df['price']
monthly_sales = df.groupby('month')['total'].sum()
print(monthly_sales)
计算每年的总销售额。
yearly_sales = df.groupby('year')['total'].sum()
print(yearly_sales)
时间序列数据必须按时间顺序排列才能进行正确的分析。
使用 sort_values() 方法确保数据按时间顺序排列。
df_sorted = df.sort_values('sale_date')
print(df_sorted.head())
将日期列设置为索引,便于时间序列操作和切片。
df.set_index('sale_date', inplace=True)
print(df.head())
整合本项目的所有知识点,完成一个完整的时间序列分析流程。