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

在R语言中如何对同一DataFrame相同Start值的Number列求和并合并行?

按Start分组求和Number的实现方法

R 实现方式

使用dplyr包的分组聚合功能是最直接的解决方案,步骤如下:

  • 未安装dplyr的话先执行install.packages("dplyr")完成安装
  • 根据Date与Start的对应关系选择分组逻辑,对Number求和
library(dplyr)

# 若每个Start对应的Date唯一,保留Date列分组求和
result_df <- df %>%
  group_by(Start, Date) %>%
  summarise(Number = sum(Number), .groups = "drop")

# 若不需要Date列,仅按Start分组
# result_df <- df %>%
#   group_by(Start) %>%
#   summarise(Number = sum(Number), .groups = "drop")

.groups = "drop"参数用于取消分组状态,返回标准结构的DataFrame,确保结果符合你需要的14232行(唯一Start对应一行)。

Python Pandas 实现方式

利用Pandas的groupby方法完成分组求和,需注意Date列的处理逻辑:

import pandas as pd

# 保留Date列(每个Start对应唯一Date时)
result_df = df.groupby(['Start', 'Date'], as_index=False)['Number'].sum()

# 仅按Start分组求和
# result_df = df.groupby('Start', as_index=False)['Number'].sum()

as_index=False参数保证分组列不会被设为索引,结果保持原始DataFrame的列结构,每行对应一个唯一的Start及求和后的Number。

为什么rbind/cbind/merge无效?

这些函数的作用是合并不同DataFrame,而非对单个DataFrame内部的数据进行分组聚合计算,因此无法实现按Start求和的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 17:20:59