Pandas 提供了丰富的功能来处理时间戳数据的方法,包括日期解析、滚动窗口计算、时间偏移等。本文将详细介绍pandas处理一些常见的时间数据的案例。
创建一个包含日期字符串的 DataFrame
import pandas as pd
data = {'date': ['2023-01-01', '2023-01-02', '2023-01-03','2023-02-04', '2023-02-05', '2023-02-06', '2023-03-09', '2023-05-08', '2023-09-01','2023-12-08'],
'value': [100, 150, 200,100, 250, 300, 400, 500, 600,500]}
df = pd.DataFrame(data)
df
将日期字符串解析为 datetime 类型
df['date'] = pd.to_datetime(df['date'])
print(df)
设置日期列为索引
df.set_index('date', inplace=True)
print(df)
按天重采样,计算每日平均值
resampled_df = df.resample('D').mean()
print(resampled_df)
计算滚动平均(窗口大小为3)
rolling_mean = df['value'].rolling(window=3).mean()
print(rolling_mean)
时间偏移,向前偏移一天
shifted_df = df.shift(1)
print(shifted_df)
时间偏移,向后偏移一天
shifted_df = df.shift(-1)
print(shifted_df)
生成时间范围,生成从2023-01-01到2023-01-10的日期范围
date_range = pd.date_range(start='2023-01-01', end='2023-01-10')
print(date_range)
提取年份
df['year'] = df.index.year
df
提取月份
df['month'] = df.index.month
df
提取星期几
df['day_of_week'] = df.index.day_of_week
df
因python索引是从0开始,0表示星期一,1表示星期二,6表示星期天。
日期时间格式化
formatted_dates = df.index.strftime('%Y-%m-%d')
print(formatted_dates)
按月分组,计算每月平均值
grouped_df = df.groupby(df.index.month).mean()
print(grouped_df)
以上是使用 Pandas 处理时间序列数据的一些常见案例。通过这些案例,大家可以更好地理解和应用Pandas在时间数据处理中的强大功能。希望这些案例对大家平时的工作或学习有所帮助。