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

如何基于首列行值对齐Pandas浮点数DataFrame并逐单元格相加?

解决方案

核心思路

利用Pandas的索引对齐机制,将timestamps列设为DataFrame的索引,这样不管行的位置如何,相同timestamp的行会自动匹配,再进行逐单元格运算。

具体步骤与代码

  1. 设置索引对齐行
    先把两个DataFrame的timestamps列设为索引,确保后续运算时行能正确匹配:

    # 将timestamps设为索引,若需保留原列可添加drop=False
    df_1 = df_1.set_index('timestamps')
    df_2 = df_2.set_index('timestamps')
    
  2. 循环累积相加
    初始化累积DataFrame,在循环中每次对齐后累加新的DataFrame:

    # 初始化累积容器,以第一个df_1作为初始值
    cumulative_df = df_1.copy()
    n = 1  # 初始计数器
    
    # 模拟循环(替换为你的实际循环逻辑,比如批量读取文件/生成数据)
    for _ in range(your_loop_count):
        # 假设每次循环生成/读取新的df_new,先统一设置索引
        df_new = df_new.set_index('timestamps')
        # 对齐后累加,缺失行默认填充NaN,用fill_value=0可将缺失值视为0计算
        cumulative_df = cumulative_df.add(df_new, fill_value=0)
        n += 1
    
    # 若你是固定重复将df_1与df_2相加n次,可简化为:
    # cumulative_df = df_1.add(df_2, fill_value=0) * n
    
  3. 计算平均值
    最后将累积结果除以循环次数n得到均值:

    result_df = cumulative_df / n
    # 可选:将索引转回普通列
    result_df = result_df.reset_index()
    

关键说明

  • 索引对齐后,位置不同但timestamp相同的行会自动匹配相加,比如示例中df_1的row_6和df_2的row_7(假设timestamp一致)会被正确对应。
  • 若某个timestamp仅在单个DataFrame中存在,add方法默认保留该行并填充NaN,根据业务需求选择是否用fill_value=0将缺失值转为0参与计算。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 13:45:28