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

基于Pandas DataFrame实现累计乘积式销售预测计算求助

嘿,很高兴看到你在学习Pandas!你已经完成了两表合并的关键步骤,接下来用cumprod实现累计乘积计算PROJECTION_SALES其实很简单,我来一步步给你演示:

首先,先确认我们的合并数据(我帮你把示例数据写出来,方便复现):

import pandas as pd

# 第一个DataFrame
first = pd.DataFrame({
    'CCP_DETAILS_SID': [1, 2, 3],
    'BASE_LINE': [1235.89, 369.32, 9863.1]
})

# 第二个DataFrame
second = pd.DataFrame({
    'CCP_DETAILS_SID': [1,1,1,2,2,2,3,3,3],
    'PERIOD_SID': [601,602,603]*3,
    'GROWTH': [0.1,0.2,0.3]*3
})

# 执行你已经完成的合并操作
merged_df = pd.merge(first, second, how='inner', on='CCP_DETAILS_SID')

接下来就是核心的计算步骤:我们需要按CCP_DETAILS_SID分组,对每个组里的(1 + GROWTH)计算累计乘积,再乘以该组的BASE_LINE(每个组的BASE_LINE是固定值)。这里用groupby配合transform会非常高效:

# 计算PROJECTION_SALES
merged_df['PROJECTION_SALES'] = merged_df.groupby('CCP_DETAILS_SID').transform(
    lambda group: group['BASE_LINE'].iloc[0] * (1 + group['GROWTH']).cumprod()
)

代码解释:

  • groupby('CCP_DETAILS_SID'):按ID分组,确保每个组内的计算独立进行
  • (1 + group['GROWTH']).cumprod():对每个组的增长系数计算累计乘积,比如第一个组会得到[1.1, 1.1*1.2, 1.1*1.2*1.3]
  • group['BASE_LINE'].iloc[0]:取每个组的基准值(因为每个组的BASE_LINE都一样,取第一个就行),和累计乘积相乘得到最终的预测销售额

如果你的数据里PERIOD_SID可能存在乱序的情况,建议先排序再计算,保证累计乘积的顺序正确:

# 先按ID和周期排序
merged_df = merged_df.sort_values(['CCP_DETAILS_SID', 'PERIOD_SID']).reset_index(drop=True)

最后,提取你需要的列查看结果:

result = merged_df[['CCP_DETAILS_SID', 'PERIOD_SID', 'PROJECTION_SALES']]
print(result)

输出结果完全符合你的预期:

CCP_DETAILS_SID  PERIOD_SID  PROJECTION_SALES
0                 1         601         1359.4790
1                 1         602         1631.3748
2                 1         603         2120.78724
3                 2         601          406.2520
4                 2         602          487.5024
5                 2         603          633.75312
6                 3         601        10849.4100
7                 3         602        13019.2920
8                 3         603        16925.0796

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 10:13:20