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

如何在Julia DataFrames中合并重复行并对指定列求和

在Julia DataFrames中合并重复行并对指定列求和

当然可以做到!核心思路是先按你认定的“重复标识列”(也就是amp和mean)分组,然后对每组里的cycles列求和,同时保留amp和mean的对应值——毕竟这些列在重复组里是完全相同的,直接保留就行。

下面用你的示例数据来演示具体操作:

步骤1:准备示例数据

先补全并构造你给出的类似数据:

using DataFrames

# 构造示例DataFrame
Data1 = DataFrame(
    amp = [50.0, 150.0, 350.0, 150.0, 50.0, 350.0, 150.0, 50.0],
    mean = [250.0, 250.0, 150.0, 250.0, 250.0, 150.0, 250.0, 250.0],
    cycles = [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0]
)

步骤2:分组并聚合求和

用groupby按amp和mean分组,再用combine对每组的cycles列求和:

# 按amp、mean分组,对cycles求和,结果列仍命名为cycles
result = combine(groupby(Data1, [:amp, :mean]), :cycles => sum => :cycles)

结果展示

执行后得到的result就是你想要的效果:

3×3 DataFrame
│ Row │ amp   │ mean  │ cycles │
├─────┼───────┼───────┼────────┤
│ 1   │ 50.0  │ 250.0 │ 3.0    │
│ 2   │ 150.0 │ 250.0 │ 3.0    │
│ 3   │ 350.0 │ 150.0 │ 2.0    │

关键说明

  • groupby(Data1, [:amp, :mean]):把所有amp和mean完全相同的行归为一组,这一步相当于识别出了“重复行”(除了cycles列之外的重复)。
  • :cycles => sum => :cycles:对每组的cycles列执行求和操作,最后把结果列命名为cycles(如果你想给求和后的列起别名,比如叫total_cycles,可以改成 :cycles => sum => :total_cycles)。

这样就完美实现了:删除重复的amp+mean组合行,同时把每组的cycles值累加,amp和mean列保持不变。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:04:18