如何将dict时间序列数据列表秘密转换为熊猫序列?

时间:2018-06-19 21:20:13

标签: python python-3.x pandas dictionary dataframe

假设我在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

1 个答案:

答案 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']