【发布时间】:2018-06-17 02:28:36
【问题描述】:
我有一本字典如下。
my_dict.keys() =
dict_keys([20160101, 20160102, 20160103, 20160104, 20160105, 20160106,
20160107, 20160108, 20160109, 20160110, 20160111, 20160112,
20160113, 20160114, 20160115, 20160116, 20160117, 20160118,
20160119, 20160120, 20160121, 20160122, 20160123, 20160124,
......
20171203, 20171204, 20171213, 20171215, 20171216, 20171217,
20171218, 20171219, 20171220, 20171221, 20171222, 20171223,
20171224, 20171225, 20171226, 20171227, 20171228, 20171229,
20171230, 20171231])
my_dict[20160101] =
array([[ 0., 0., 1., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 2., 0., 0.],
[ 0., 0., 0., 0., 0., 0.],
[ 1., 0., 0., 0., 0., 2.],
[ 0., 0., 4., 0., 0., 0.]])
所以,您已经注意到我的键表示日期,并且每个日期我都有一个包含 6 x 6 浮点数的数组。在 my_dict 中的每个键中,所有索引都是相同的。
**需要注意的重要一点是 my_dict 并非每天都有。例如,在 20171204 之后,它的 20171213 和 20171215。所以日期可以跳过。
现在我的任务是获取每日数据(不是每一天)到每周数据,并在一周内添加所有值。也就是说,从 2016 年的第一周到 2017 年的最后一周,将一周内的每个值相加,并提供每周数据。另外,由于 2016 年的第一周从 20160103(星期日)开始,我可以忽略 my_dict 中的 20160101 和 20160102 数据以及 2017 年的结束周。你们能帮我解决这个问题吗?提前致谢!
-------编辑--------- 看来我的问题还不够清楚。所以我将提供一个简单的例子。由于我想遵循 pandas datatime week 的标准,所以每周都从星期日开始。所以 2016 年的第一周将是 20160103,20160104,20160105,20160106,20160107,20160108,20160109。
所以我的新字典,weekly_dict[201601]
weekly_dict = {}
weekly_dict[201601] = my_dict[20160103] + my_dict[20160104] + my_dict[20160105] + my_dict[20160106] + my_dict[20160107] + my_dict[20160108] + my_dict[20160109]
然后继续。希望这是有道理的。谢谢!
【问题讨论】:
-
每周数据是什么意思?你的意思是例如
20171213将转换为201750因为 50 是 2017 年 12/13 的第 50 周? -
考虑到星期日是一周的第一天,我想将反映到 2016 年第一周的所有值添加到 20160103,20160104,20160105,20160106,20160107,20160108,20160109 到201601 并用每周数据制作一个新字典。这有帮助吗?
标签: python datetime dictionary timestamp time-series