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

如何按年Group by求和销售额并计算用户新增总量?

解决方案

可以通过Pandas实现你的需求,具体步骤如下:

1. 数据预处理

首先要确保日期列是标准格式,并按时间顺序排序(避免差值计算逻辑出错):

import pandas as pd

# 构造你的数据集
data = {
    'Sales': [40000, 500, 4000, 234, 1000, 50000, 40000, 500, 2145, 344, 1234, 432],
    'Users': [234, 100, 555, 1000, 2000, 1200, 234, 100, 555, 1000, 1233, 5000],
    'DT': ['1/4/2018', '1/23/2018', '2/4/2018', '6/4/2018', '6/14/2018', '9/12/2018',
           '1/14/2019', '2/23/2019', '2/26/2019', '6/14/2019', '6/21/2019', '11/12/2019']
}
df = pd.DataFrame(data)

# 转换日期格式并按时间排序
df['DT'] = pd.to_datetime(df['DT'])
df = df.sort_values('DT')

# 提取年份列用于分组
df['Year'] = df['DT'].dt.year

2. 计算用户增量

用diff()函数直接计算每个日期与前一个日期的用户数差值,完全匹配你需要的“后续日期Users值减前一个日期Users值”逻辑:

df['User_Increment'] = df['Users'].diff()

注:第一个日期没有前序数据,差值会显示为NaN,分组求和时会自动忽略。如果认为第一个日期的用户数属于当年新增,可以替换为df['User_Increment'] = df['Users'].diff().fillna(df['Users']),将首个用户数纳入增量计算。

3. 按年分组聚合

最后按年份分组,对Sales列求和,对用户增量列求和:

result = df.groupby('Year').agg(
    年度销售总额=('Sales', 'sum'),
    年度用户增量总和=('User_Increment', 'sum')
).reset_index()

print(result)

最终输出

执行代码后会得到如下结果:

Year年度销售总额年度用户增量总和
201895734966.0
2019446554766.0

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 11:36:14