将嵌套字典结构的时序数据转换为带时间戳索引的Pandas DataFrame
时序数据合并为单一DataFrame
原始数据
{ 'param1': [ {'ts': 1669246574000, 'value': '6.06'}, {'ts': 1669242973000, 'value': '6.5'} ], 'param2': [ {'ts': 1669246579000, 'value': '7'}, {'ts': 1669242973000, 'value': '5'} ] }
需求变化
更新1:最初期望的格式
这是一开始设想的格式,后续调整了要求
ts param1 param2 1669246574000 6.06 1 1669242973000 6.5 2 1669246579000 7 3 1669242973000 5 4
更新2:最终目标格式
要求以时间戳(ts)为索引,格式如下:
ts param1 param2 1669242973000 6.5 5 1669246574000 6.06 NaN 1669246579000 NaN 7
实现代码
以下是达成目标格式的解决方案:
import pandas as pd data_frames = [] for key, values in data.items(): df = pd.DataFrame(values).set_index('ts').rename(columns={'value': key}) data_frames.append(df) data_frame = pd.concat(data_frames, axis=1)
代码说明
- 遍历每个参数,把对应的数据列表转成DataFrame,将
ts设为索引,同时把value列重命名为参数名(比如param1) - 把所有生成的小DataFrame按列合并,pandas会自动对齐时间戳索引,没有对应数据的位置自动填充
NaN
内容的提问来源于stack exchange,提问作者devaskim
相关产品推荐
相关产品推荐

