【发布时间】:2017-11-15 04:16:01
【问题描述】:
我有一个熊猫数据框,其中索引是日期,从 2007 年到 2017 年。
我想计算每年每个工作日的平均值。我可以按年份分组:
groups = df.groupby(TimeGrouper('A'))
years = DataFrame()
for name, group in groups:
years[name.year] = group.values
这是我创建新数据框(年)的方式,在每一列中我获取时间序列的每一年。 如果我想查看每年的统计数据(例如平均值):
print(years.mean())
但现在我想将每一年的一周中的每一天分开,以便获得当时所有工作日的平均值。
我唯一知道的是:
year=df[(df.index.year==2007)]
day_week=df[(df.index.weekday==2)]
这样做的问题是我必须每周更改 7 次,然后重复此操作 11 年(我的时间序列从 2007 年开始,到 2017 年结束),所以我必须这样做 77 次!
有没有办法按年份和工作日对时间进行分组以加快速度?
【问题讨论】:
-
你觉得
groups = df.groupby([df.index.year, df.index.weekday]))吗? -
它有效。我不知道我可以根据索引对多个时间组进行分组。谢谢。
-
很高兴能帮上忙。如果我的回答有帮助,请不要忘记accept。谢谢。
标签: python pandas dataframe group-by time-series