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

如何合并两个Pandas DataFrame并调整第二个的time列后拼接?

Pandas合并DataFrame并调整时间列的可行思路

先给出可复现的输入数据:

import pandas as pd

df1 = pd.DataFrame({
    'time': [0.00, 0.01, 0.02, 0.03, 0.04],
    'power': [800.380000, 788.281667, 776.183333, 764.085000, 782.222500]
})

df2 = pd.DataFrame({
    'time': [0.00, 0.01, 0.02, 0.03, 0.04],
    'power': [1485.715, 1485.915, 1485.715, 1450.980, 1450.995]
})

思路1:分步调整+合并

这是最直观的方案,步骤清晰易理解:

  1. 计算df1的最大时间值:max_time = df1['time'].max()
  2. 复制df2(避免修改原始数据),调整其time列每个值加上最大时间
  3. 用pd.concat合并两个DataFrame,最后重置索引去除重复行号

代码示例:

max_time = df1['time'].max()
df2_adjusted = df2.copy()
df2_adjusted['time'] += max_time

result = pd.concat([df1, df2_adjusted]).reset_index(drop=True)

思路2:链式操作简化代码

追求代码简洁的话,可用assign直接生成调整后的df2,无需单独创建中间变量,一步完成合并:

result = pd.concat([
    df1,
    df2.assign(time=df2['time'] + df1['time'].max())
]).reset_index(drop=True)

assign会返回新的DataFrame,不会改动原始df2,适合快速实现需求。

思路3:兼容旧版本的append方法(不推荐)

如果使用Pandas 2.0以下的旧版本,也可以用append实现,但该方法已被官方弃用,建议优先用concat:

max_time = df1['time'].max()
result = df1.append(df2.assign(time=df2['time'] + max_time)).reset_index(drop=True)

执行以上任意一种方法后,result就是你需要的目标DataFrame。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 06:09:54