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

Pandas非time列求和结果异常,请求排查操作问题

排查Pandas求和结果不正确的问题

嘿,我帮你梳理下这个求和异常的问题,大概率是重复列名在搞鬼!

先看你给出的DataFrame末尾行,能发现non_negative_derivative_x和non_negative_derivative_y各出现了两次——这种重复列名会让Pandas在计算行求和时逻辑混乱,导致结果不符合预期。

解决步骤:

1. 先确认列名重复情况

执行下面的代码,把所有列名打印出来,明确重复的列:

print(df_merged.columns.tolist())

2. 处理重复列名

根据你的数据情况选一种方式:

  • 如果重复列是冗余数据(比如合并时误添加的重复列),直接保留每列的第一个实例,删除后续重复项:
    df_merged = df_merged.loc[:, ~df_merged.columns.duplicated()]
    
  • 如果重复列是不同的有效数据,给它们重命名区分:
    from collections import defaultdict
    
    col_counter = defaultdict(int)
    new_column_names = []
    for col in df_merged.columns:
        col_counter[col] += 1
        if col_counter[col] > 1:
            new_column_names.append(f"{col}_{col_counter[col]}")
        else:
            new_column_names.append(col)
    df_merged.columns = new_column_names
    

3. 重新计算行求和

处理完列名后,再执行你的求和代码,此时结果应该就正确了:

df_merged['bps'] = df_merged.drop('time', axis=1).sum(axis=1)

验证结果

你可以手动计算示例行的数值来核对:10574.72 + 5.19642e+09 + 5.78985e+09 ≈ 1.098627457472e+10,对比Pandas计算出的bps值是否一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:27:02