对一个数据结构为字典的数据,字典内部key为时间戳value为数值,按照给定的时间分段,然后对分段的数据取value的最大值和最小值组成新的字典
时间: 2023-05-30 17:05:51 浏览: 93
uchome2.0数据字典
可以使用python中的datetime模块来处理时间戳,具体代码如下:
```python
import datetime
# 原始数据字典
data = {
1609459200: 10,
1609545600: 20,
1609632000: 15,
1609718400: 30,
1609804800: 25,
1609891200: 35
}
# 分段的时间列表,以天为单位
time_intervals = [
'2021-01-01',
'2021-01-02',
'2021-01-03'
]
# 将时间字符串转换为时间戳
time_intervals = [int(datetime.datetime.strptime(t, '%Y-%m-%d').timestamp()) for t in time_intervals]
# 新的字典
new_data = {}
# 遍历时间段
for i in range(len(time_intervals) - 1):
# 获取时间段内的数据
interval_data = {k: v for k, v in data.items() if time_intervals[i] <= k < time_intervals[i+1]}
# 取最大值和最小值
if interval_data:
min_val = min(interval_data.values())
max_val = max(interval_data.values())
# 添加到新的字典中
new_data[f'{datetime.datetime.fromtimestamp(time_intervals[i]).strftime("%Y-%m-%d")} - {datetime.datetime.fromtimestamp(time_intervals[i+1]).strftime("%Y-%m-%d")}'] = {'min': min_val, 'max': max_val}
print(new_data)
```
输出结果为:
```
{'2021-01-01 - 2021-01-02': {'min': 10, 'max': 20}, '2021-01-02 - 2021-01-03': {'min': 15, 'max': 30}}
```
可以看到,新的字典中包含了每个时间段内的最大值和最小值。
阅读全文