我是 Pandas 时间序列和数据帧的新手,很难完成这个简单的任务。
我有一个从 2004 年 1 月 1 日到 2008 年 12 月 31 日的每一天的数据集“data”(一维 float32-Numpy 数组)。日期存储为日期时间对象“日期”的列表。
基本上,我想计算一个完整的“标准年” - 所有年份中每一天的平均值(1-365)。
我从这个类似的(?)问题开始(在 pandas 数据框中获取几年来工作日某个小时的平均值 https://stackoverflow.com/questions/16967165/getting-the-average-of-a-certain-hour-on-weekdays-over-several-years-in-a-pandas),但无法获得期望的结果 - 365“平均”天的时间序列,例如1 月 1 日、1 月 2 日这四个月的平均值...
一个小示例脚本:
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()
分组依据month和日期,而不是年份和日期:
test = ts.groupby([ts.index.month, ts.index.day]).mean()
yields
1 1 0.499264
2 0.449357
3 0.498883
...
12 17 0.408180
18 0.317682
19 0.467238
...
29 0.413721
30 0.399180
31 0.828423
Length: 366, dtype: float64
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)