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

如何在R中按日期分组计算金额总和并生成新DataFrame

实现方法建议

核心思路

先给每一行标记对应的归属日期,再按日期分组求和,最后整理成目标结构的DataFrame。

基于Pandas的具体实现代码

import pandas as pd

# 初始化你的原始DataFrame(如果已有可跳过这步)
df = pd.DataFrame({
    'permitnum': ['6/1/2022', 'ascas', 'olic', '6/2/2022', 'avrey', 'fev', 'grey'],
    'amount': [pd.NA, 30.00, 40.41, pd.NA, 17.32, 32.18, 12.20]
})

# 1. 为每行标记对应的日期:识别日期行并向下填充
df['归属日期'] = df.apply(
    lambda row: row['permitnum'] if pd.isna(row['amount']) else pd.NA,
    axis=1
).ffill()

# 2. 过滤无效的日期行,按日期分组求和
result_df = df[~pd.isna(df['amount'])].groupby('归属日期')['amount'].sum().reset_index()

# 3. 重命名列名匹配需求
result_df.columns = ['日期', '总金额']

print(result_df)

代码说明

  • ffill():把识别到的日期值向下填充,让后续的金额行都关联到对应的日期
  • ~pd.isna(df['amount']):过滤掉原始的日期行(这类行的amount为空,无需参与求和)
  • groupby+sum:按归属日期对金额做聚合求和,reset_index()把分组结果转为标准DataFrame

运行后输出结果:

日期总金额
6/1/202270.41
6/2/202261.70

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 20:10:24