我刚接触Pandas时间序列和数据框架,并且在完成这个简单的任务时遇到了困难。我有一个数据集"data"(一维float32-Numpy数组),从2004年1月1日到2008年12月31日的每一天都有数据。日期被存储为datetime对象的列表"dates"。基本上,我想计算一个完整的"标准年"——所有年份(1-365)每天的平均值。我从这个类似的问题开始(在pandas数据框中获得工作日某小时的平均值),但无法得到所需的结果——365个"平均"日的时间序列,例如所有1月1日、2月1日的平均值......一个小例子脚本:
import numpy as np
import pandas as pd
import datetime
startdate = datetime.datetime(2004, 1, 1)
enddate = datetime.datetime(2008, 1, 1)
days = (enddate + datetime.timedelta(days=1) - startdate).days
data = np.random.random(days)
dates = [startdate + datetime.timedelta(days=x) for x in range(0, days)]
ts = pd.Series(data, dates)
test = ts.groupby(lambda x: (x.year, x.day)).mean()