假设我在python列表中保存了1000项时间序列字典数据和一些非时间序列键。 问题在于每个列表都有一些不同的时间序列键。 这是列表中数据项的两个示例。
[{'00:00:00': 1430801.0,
'00:05:00': 1430806.0,
'00:10:00': 1430811.0,
'00:15:00': 1430815.0,
'00:20:00': 1430821.0,
'dt': '2016-07-18',
'a': 'Jack'
'b': 'Tony'},
{'00:10:00': 1430201.0,
'00:25:00': 1430106.0,
'00:40:00': 1430311.0,
'00:55:00': 1430415.0,
'01:10:00': 1430521.0,
'dt': '2016-07-19',
'a': 'Jack'
'b': 'Tony'}]
我想将此列表隐瞒到pandas系列中,如下所示: 瑟[杰克·托尼]:
2016-07-18 00:00:00: 1430801.0
2016-07-18 00:05:00: 1430806.0
2016-07-18 00:10:00: 1430811.0
2016-07-18 00:15:00: 1430815.0
2016-07-18 00:20:00: 1430821.0
2016-07-19 00:10:00: 1430201.0
2016-07-19 00:25:00: 1430106.0
2016-07-19 00:40:00: 1430311.0
2016-07-19 00:55:00: 1430415.0
2016-07-19 01:10:00: 1430521.0
答案 0 :(得分:2)
您可以遍历字典列表,仅保留看起来像时间戳的内容,使其成为数据帧,然后将其转换为以时间为索引的序列。
data = [{'00:00:00': 1430801.0,
'00:05:00': 1430806.0,
'00:10:00': 1430811.0,
'00:15:00': 1430815.0,
'00:20:00': 1430821.0,
'dt': '2016-07-18',
'a': 'Jack',
'b': 'Tony'},
{'00:10:00': 1430201.0,
'00:25:00': 1430106.0,
'00:40:00': 1430311.0,
'00:55:00': 1430415.0,
'01:10:00': 1430521.0,
'dt': '2016-07-19',
'a': 'Jack',
'b': 'Tony'}]
import re
pat = re.compile(r'\d{2}:\d{2}:\d{2}')
pd.DataFrame([[r['dt']+' '+k, v] for r in data for k, v in r.items() if pat.match(k)], columns=['tm', 'v']).set_index('tm')['v']