Pandas 时间基础
时间序列数据是许多数据分析任务中的核心部分,尤其是在金融、气象、物联网等领域。Pandas 提供了强大的工具来处理时间序列数据,使得时间相关的操作变得简单而高效。本文将介绍 Pandas 中时间序列的基础知识,帮助你快速上手。
什么是时间序列?
时间序列是按时间顺序排列的数据点序列。例如,股票价格、气温记录、网站访问量等都可以是时间序列数据。Pandas 提供了 Timestamp
、DatetimeIndex
等工具来处理时间数据。
创建时间序列
在 Pandas 中,时间序列通常以 DatetimeIndex
的形式存在。我们可以使用 pd.to_datetime()
函数将字符串或数字转换为时间戳。
python
import pandas as pd
# 将字符串转换为时间戳
dates = ['2023-01-01', '2023-01-02', '2023-01-03']
timestamps = pd.to_datetime(dates)
print(timestamps)
输出:
DatetimeIndex(['2023-01-01', '2023-01-02', '2023-01-03'], dtype='datetime64[ns]', freq=None)
时间索引
在 Pandas 中,时间索引(DatetimeIndex
)是处理时间序列数据的关键。我们可以将时间索引作为 DataFrame 的索引,从而方便地进行时间相关的操作。
python
# 创建一个带有时间索引的 DataFrame
data = {'value': [10, 20, 30]}
df = pd.DataFrame(data, index=timestamps)
print(df)
输出:
value
2023-01-01 10
2023-01-02 20
2023-01-03 30
时间序列的常用操作
1. 选择特定时间范围
我们可以使用 .loc[]
来选择特定时间范围内的数据。
python
# 选择 2023-01-02 到 2023-01-03 的数据
selected_data = df.loc['2023-01-02':'2023-01-03']
print(selected_data)
输出:
value
2023-01-02 20
2023-01-03 30
2. 重采样
重采样是时间序列分析中的一个重要操作,它允许我们将数据从一个频率转换为另一个频率。例如,将每日数据转换为每月数据。
python
# 创建一个包含更多日期的 DataFrame
dates = pd.date_range('2023-01-01', periods=10, freq='D')
data = {'value': range(10)}
df = pd.DataFrame(data, index=dates)
# 将每日数据重采样为每月数据
resampled_df = df.resample('M').mean()
print(resampled_df)
输出:
value
2023-01-31 4.5
3. 时间差计算
我们可以使用 pd.Timedelta
来计算时间差。
python
# 计算两个时间点之间的差值
start_time = pd.Timestamp('2023-01-01')
end_time = pd.Timestamp('2023-01-03')
time_diff = end_time - start_time
print(time_diff)
输出:
2 days 00:00:00
实际案例:分析股票价格
假设我们有一组股票价格数据,我们可以使用 Pandas 来分析这些数据。
python
# 创建股票价格数据
dates = pd.date_range('2023-01-01', periods=5, freq='D')
prices = [100, 101, 102, 103, 104]
stock_df = pd.DataFrame({'price': prices}, index=dates)
# 计算每日价格变化
stock_df['price_change'] = stock_df['price'].diff()
print(stock_df)
输出:
price price_change
2023-01-01 100 NaN
2023-01-02 101 1.0
2023-01-03 102 1.0
2023-01-04 103 1.0
2023-01-05 104 1.0
总结
本文介绍了 Pandas 中时间序列的基础知识,包括如何创建时间序列、使用时间索引、选择特定时间范围、重采样以及计算时间差。通过这些基础操作,你可以开始处理和分析时间序列数据。
附加资源
- Pandas 官方文档 - 时间序列
- Python for Data Analysis - 一本深入讲解 Pandas 和数据处理的书籍。
练习
- 创建一个包含 2023 年 1 月 1 日到 2023 年 1 月 10 日的时间序列,并计算每日的累计和。
- 使用重采样将每日数据转换为每周数据,并计算每周的平均值。
- 分析一组模拟的销售数据,计算每月的销售总额。
通过这些练习,你将更好地掌握 Pandas 中时间序列的操作。