You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从复杂字符串创建Pandas DataFrame提取时间序列贡献得分

字符串解析为目标Pandas DataFrame实现方案

以下是可直接复用的实现逻辑,仅需根据你的原始字符串格式调整第一步的解析部分即可:

  • 第一步:将原始复杂字符串解析为中间记录列表,每条记录需要包含timestamp(时间戳)、series_name(序列名,如series_0)、score(对应得分)三个核心字段
  • 第二步:通过Pandas透视功能将序列名转换为列,自动对齐不同时间戳的字段
  • 第三步:补全所有要求的目标字段,无数据的位置自动填充空值,最后调整列顺序即可

核心实现代码:

import pandas as pd
import numpy as np

# -------------------------- 自定义解析部分 按你的字符串格式修改即可 --------------------------
# 示例:已从原始字符串解析得到如下中间记录列表
parsed_records = [
    {"timestamp": "2021-01-02T12:06:00Z", "series_name": "series_0", "score": 1.2},
    {"timestamp": "2021-01-02T12:06:00Z", "series_name": "series_1", "score": 3.1},
    {"timestamp": "2021-01-02T12:06:00Z", "series_name": "series_2", "score": 0.8},
    {"timestamp": "2021-01-02T12:06:00Z", "series_name": "series_3", "score": 2.5},
    {"timestamp": "2021-01-02T12:59:00Z", "series_name": "series_0", "score": 2.1},
    {"timestamp": "2021-01-02T12:59:00Z", "series_name": "series_1", "score": 1.7},
    {"timestamp": "2021-01-02T12:59:00Z", "series_name": "series_2", "score": 1.1},
    {"timestamp": "2021-01-02T12:59:00Z", "series_name": "series_3", "score": 0.3},
    {"timestamp": "2021-01-02T13:15:00Z", "series_name": "series_0", "score": 0.9},
    {"timestamp": "2021-01-02T13:15:00Z", "series_name": "series_1", "score": 2.3},
    {"timestamp": "2021-01-02T13:15:00Z", "series_name": "series_2", "score": 1.5},
    {"timestamp": "2021-01-02T13:15:00Z", "series_name": "series_3", "score": 2.0},
    {"timestamp": "2021-01-02T13:15:00Z", "series_name": "series_4", "score": 1.8},
]
# -------------------------- 自定义解析部分结束 --------------------------

# 透视转换
df_raw = pd.DataFrame(parsed_records)
df_pivot = df_raw.pivot(index="timestamp", columns="series_name", values="score").reset_index()

# 补全所有目标字段、调整列顺序
target_cols = ["timestamp", "series_0", "series_1", "series_2", "series_3", "series_4"]
for col in target_cols:
    if col not in df_pivot.columns:
        df_pivot[col] = np.nan
df_result = df_pivot[target_cols]

# 查看结果
print(df_result)

最终输出的DataFrame完全符合要求,你提到的2021-01-02T12:06:00Z、2021-01-02T12:59:00Z两个时间戳的series_4字段会自动保留空值,不需要额外做缺失值映射。


内容的提问来源于stack exchange,提问作者luca canonico

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 23:54:03