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

Python Pandas DataFrame按时间戳分组合并多组时间序列数据

实现方案

直接按如下步骤写代码即可,假设你的原始DataFrame变量名为raw_df:

import pandas as pd
import numpy as np

# 存储每个指标处理后的临时表
tmp_tables = []

# 遍历所有指标列做单独处理
for metric_name in raw_df.columns:
    # 取出当前列的时间戳序列、对应指标值序列
    ts_seq = raw_df.loc[0, metric_name]
    value_seq = raw_df.loc[1, metric_name]
    # 时间戳四舍五入取整到秒
    rounded_ts = [int(round(ts)) for ts in ts_seq]
    # 生成当前指标的两列临时表
    current_df = pd.DataFrame({
        "Timestamp": rounded_ts,
        metric_name: value_seq
    })
    # 对同一个秒的重复数据去重,默认保留第一个,有聚合需求可自行修改
    current_df = current_df.drop_duplicates(subset="Timestamp", keep="first")
    tmp_tables.append(current_df)

# 所有临时表按时间戳外连接合并
merged_df = tmp_tables[0]
for df in tmp_tables[1:]:
    merged_df = pd.merge(merged_df, df, on="Timestamp", how="outer")

# 按时间戳升序排序,重置索引,缺失值统一填充为NaN
merged_df = merged_df.sort_values("Timestamp").reset_index(drop=True)
merged_df = merged_df.fillna(np.nan)

额外说明

  • 如果同一个秒内存在多个指标值,你需要取均值/最大值等聚合结果,将去重的代码替换为分组聚合即可,示例:
    # 按时间戳分组取指标均值
    current_df = current_df.groupby("Timestamp")[metric_name].mean().reset_index()
    
  • 如需导出为CSV文件,直接调用merged_df.to_csv("output.csv", index=False)即可,输出格式和你要求的完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 12:15:01