Python解析嵌套JSON提取timestamps与values构建双列DataFrame
从当前解析结果出发的实现方案
你已经通过pd.json_normalize(PDPjson['result'],['data'])拿到了每行存着完整时间戳列表、数值列表的DataFrame,不需要回头重新解析原始JSON,直接用pandas内置的列表拆解能力就能得到逐行匹配的规整结构:
具体操作
- 同步拆分解包两个目标列,避免索引错位
不要单独对某一列做展开操作,把timestamps、values两个列作为列表参数一次性传入explode方法,pandas会严格按列表内的元素位置一一对应展开,不会出现时间和数值错配的问题:# 从当前已生成的pdp DataFrame出发,仅提取需要的两列后同步拆分 final_df = pdp[['timestamps', 'values']].explode(column=['timestamps', 'values']) - 重命名列匹配目标命名
final_df.columns = ['Timestamp', 'Values'] - 可选优化:如果需要把毫秒级epoch时间戳转为可读的标准时间格式,可以追加一行转换逻辑:
final_df['Timestamp'] = pd.to_datetime(final_df['Timestamp'], unit='ms')
最终效果
执行完成后,原单元格内存的完整列表会被拆成逐行的独立值,时间和数值严格按位置一一对应,得到你需要的仅含Timestamp、Values两列的规整DataFrame。哪怕原始JSON中存在多条带列表记录的data条目,该方法也能一次性完成全部展开,不需要额外写循环遍历逻辑。
输出结构示例:
Timestamp Values 1596326400000 3880.834490740741 1616976000000 3879.6458333333335 1617062400000 3826.3645833333335 1617148800000 3890.871527777778 1617235200000 3876.8199643493763
内容的提问来源于stack exchange,提问作者Slavisha84
相关产品推荐
相关产品推荐

